【发布时间】:2012-04-03 17:33:31
【问题描述】:
我创建了一个 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>
我已经注释掉了“参数”,并在顶部的标签下添加了一个连接字符串 sn-p:
<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; }
}
我错过了什么吗?
提前致谢!
【问题讨论】:
标签: entity-framework ef-code-first sql-server-ce