gpt4 book ai didi

.net - 将 Entity Framework 4.1 与 SQLITE 结合使用

转载 作者:行者123 更新时间:2023-12-03 16:27:01 25 4
gpt4 key购买 nike

有可能吗?我有一个现有的数据库,并创建了实体类:

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=&quot;data source=.\mindstore.sqlite.s3db&quot;"
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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com