微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

entity-framework-4 – 使用SQL Server Compact与实体框架的连接字符串?

我已经尝试了谷歌这样做.我已经安装了sql Server CE 4.0,并且具有EF 4.1,但是我无法获得正确的连接字符串. connectionstrings.com上没有任何内容适用于我.

我只是想创建一个sqlCeEngine对象,但无论我尝试什么都有一些例外.最近一直是

UnkNown connection option in connection string

“元数据”,“应用程序”,“提供者”或“提供者连接字符串”之后.我知道EF要求连接字符串中的元数据.而且我无法想象没有“提供者连接字符串”可以做什么.

到目前为止我有这个:

<add name="DBContext" 
     connectionString="provider connection string=&quot;Data Source=MyDbFile.sdf;Persist Security Info=False;&quot;" 
     providerName="System.Data.EntityClient" />

有一次我用元数据:

<add name="DBContext" 
     connectionString="Metadata=res://*/Data.DBContext.csdl|res://*/Data.DBContext.ssdl|res://*/Data.DBContext.msl;provider=System.Data.sqlClient;provider connection string=&quot;Data Source=MyDbFile.sdf;Persist Security Info=False;&quot;" 
     providerName="System.Data.EntityClient" />

是否需要元数据?连接字符串的“app”部分中有什么?提供者应该是什么,System.Data.sqlClient或一些sql Server CE版本? (当我尝试添加引用时,我仍然找不到,我的添加引用窗口仍然只包含System.Data.sqlServerCe版本3.5.1.0.)还是没有?

在providerName属性中应该怎么做? System.Data.EntityClient是否正确?就像这里有10个不同的变量,每个组合给我一个新的同样神秘的错误,没有一个在Google上有用的东西.我在我的智慧的尽头.这是甚么可能吗?

解决方法

您可以在App.config文件(EF5代码第一次迁移和sql Server CE 4.0)中尝试这样做:
<connectionStrings>
    <add name="DefaultConnection"
         providerName="System.Data.sqlServerCe.4.0"
         connectionString="Data Source=|DataDirectory|\Data\ProjectDb.sdf"/>
</connectionStrings>

在你的ProjectDb类中:

class ProjectDb : DbContext
{
    public ProjectDb()
        : base("DefaultConnection")
    {

    }
}

它将像一个魅力一样工作.

您可以在这里找到更多信息:http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-2-connections-and-models.aspx

原文地址:https://www.jb51.cc/mssql/76075.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐