【问题标题】:How do you auto generate SDF in Code First approach如何在 Code First 方法中自动生成 SDF
【发布时间】: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


    【解决方案1】:

    将连接字符串改为:

    <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 - 请参阅petebarber.blogspot.com/2012/04/…
    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 2019-07-19
    • 2014-07-24
    • 2011-09-11
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多