.net – 将Entity Framework 4.1与SQLITE一起使用
发布时间:2020-12-12 18:53:19 所属栏目:百科 来源:网络整理
导读:有可能吗?我有一个现有的数据库,并创建了实体类: public class MyContainer : DbContext{ public DbSetItem Items { get; set; } // more tables..} 当我使用此连接字符串时,它失败,因为它没有任何元数据文件: connectionStrings add name="MyContainer"
有可能吗?我有一个现有的数据库,并创建了实体类:
public class MyContainer : DbContext { public DbSet<Item> Items { get; set; } // more tables.. } 当我使用此连接字符串时,它失败,因为它没有任何元数据文件: <connectionStrings> <add name="MyContainer" connectionString="metadata=.items.csdl|.items.ssdl|.items.msl;provider=System.Data.SQLite;provider connection string="data source=.mindstore.sqlite.s3db"" providerName="System.Data.EntityClient"/> </connectionStrings> 但是,当我从配置中省略元数据时,它会抱怨您不允许从配置中省略元数据. 那么如何在不使用任何xml配置文件的情况下将SQLITE与EF 4.1一起使用,并按照惯例进行映射呢? 解决方法如果要在没有EDMX的情况下首先使用EF代码,则无法使用EntityClient.使用SQLite的常见ADO.NET连接字符串:<connectionStrings> <add name="MyContainer" providerName="System.Data.SQLite" connectionString="data source=.mindstore.sqlite.s3db" /> </connectionStrings> 编辑: 要关闭数据库创建和数据库检查,请尝试删除默认元数据约定并将数据库初始化程序设置为null. 数据库初始化器: // call this only once in your application bootstrap Database.SetInitializer<YourContext>(null); 删除约定: // Place this to your derived context protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreationg(modelBuilder); modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |