有可能吗?我有一个现有的数据库,并创建了实体类:
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>();
}
关于.net - 将 Entity Framework 4.1 与 SQLITE 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6101812/