Entity framework 如何在代码优先方法中自动生成SDF
我已经创建了一个POCO和一个上下文,并从NuGet(v4.3.1)中将EF添加到我的项目中。与我已经习惯的相比,app.config对我来说有点新。它有以下部分:Entity framework 如何在代码优先方法中自动生成SDF,entity-framework,ef-code-first,sql-server-ce,Entity Framework,Ef Code First,Sql Server Ce,我已经创建了一个POCO和一个上下文,并从NuGet(v4.3.1)中将EF添加到我的项目中。与我已经习惯的相比,app.config对我来说有点新。它有以下部分: <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> <parameters> <!-
<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数据库将自动生成的字符串。然而,它现在没有这样做。相反,我得到了以下异常:
“从数据库获取提供程序信息时出错。这可能是由于实体框架使用了不正确的连接字符串造成的。有关详细信息,请检查内部异常,并确保连接字符串正确。”
内部例外是:
“提供程序未返回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; }
}
班级人员
{
[关键]
公共int Id{get;set;}
公共字符串FName{get;set;}
公共字符串LName{get;set;}
公共整数{get;set;}
}
类上下文:DbContext
{
公共数据库集人物{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>
不幸的是,这也不起作用。我以前确实试过。我注意到,如果我尝试将新的“数据库文件”添加到项目中并选择SQL Server CE作为源,则会生成这种格式。名称必须与DbContext的全名匹配,或者在DbContext构造函数中使用name=CodeFirstExampleContext-请参阅