gpt4 book ai didi

entity-framework - 你如何在 Code First 方法中自动生成 SDF

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

我已经创建了一个 POCO 和一个上下文,并将 EF 从 NuGet (v4.3.1) 添加到我的项目中。与我已经习惯的相比,app.config 对我来说看起来有点新。它有这个部分:

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<!--<parameter value="Data Source=|DataDirectory|Test.sdf; Integrated Security=True; MultipleActiveResultSets=True" />-->
</parameters>
</defaultConnectionFactory>

我注释掉了“参数”并在顶部的标签下添加了一个连接字符串片段:

<connectionStrings>
<add name="CodeFirstExampleContext" connectionString="Data Source=|DataDirectory|Test.sdf;Initial Catalog=CodeFirstExample;integrated security=True" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>

以前使用 SQL CE 数据库会自动生成的连接字符串。但是它现在没有这样做。相反,我得到以下异常:

“从数据库中获取提供者信息时发生错误。这可能是由于 Entity Framework 使用了不正确的连接字符串造成的。请检查内部异常以获取详细信息并确保连接字符串正确。”

内部异常是:

“提供者没有返回 ProviderManifestToken 字符串。”

这是我的 POCO 和上下文类型:

class Person
{
[Key]
public int Id { get; set; }
public string FName { get; set; }
public string LName { get; set; }
public int Age { get; set; }
}


class Context:DbContext
{
public DbSet<Person> People { get; set; }
}

我是不是漏掉了什么?

提前致谢!

最佳答案

将连接字符串更改为:

<connectionStrings> 
<add name="Context" connectionString="Data Source=|DataDirectory|\Test.sdf"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>

并更改默认连接工厂:

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>

关于entity-framework - 你如何在 Code First 方法中自动生成 SDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9998407/

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