Tes*_*rex 10 sql-server-ce entity-framework-4
我已经为此尝试了谷歌.我已经安装了SQL Server CE 4.0,并且有EF 4.1,但我无法获得正确的连接字符串.什么都不connectionstrings.com适用于我.
我只想创建一个SqlCeEngine对象,但无论我尝试什么,我都会遇到一些异常.最近一直是
连接字符串中的未知连接选项
使用"元数据","应用程序","提供程序"或"提供程序连接字符串"之后.我知道EF需要连接字符串中的元数据.我无法想象如果没有"提供者连接字符串",任何事情都可以做到.
到目前为止我有这个:
<add name="DBContext"
connectionString="provider connection string="Data Source=MyDbFile.sdf;Persist Security Info=False;""
providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
有一次,我用元数据:
<add name="DBContext"
connectionString="metadata=res://*/Data.DBContext.csdl|res://*/Data.DBContext.ssdl|res://*/Data.DBContext.msl;provider=System.Data.SqlClient;provider connection string="Data Source=MyDbFile.sdf;Persist Security Info=False;""
providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
它是否需要元数据?什么在连接字符串的"app"部分?提供者应该是什么,System.Data.SqlClient或者某些SQL Server CE版本?(当我尝试添加引用时,我仍然找不到.我的添加引用窗口仍然只包含System.Data.SqlServerCe版本3.5.1.0.)或者什么都没有?
该providerName属性应该包含哪些内容?是对的System.Data.EntityClient吗?这就像这里有10个不同的变量,每个组合都给我一个新的同样神秘的错误,其中没有一个在Google上有用.我的智慧结束了.这甚至可能吗?
Row*_*ego 13
您可以在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>
Run Code Online (Sandbox Code Playgroud)
在你ProjectDb上课:
class ProjectDb : DbContext
{
public ProjectDb()
: base("DefaultConnection")
{
}
}
Run Code Online (Sandbox Code Playgroud)
它会像魅力一样工作.
您可以在此处找到更多信息:http://blogs.msdn.com/b/adonet/archive/2011/01/27/using-dbcontext-in-ef-feature-ctp5-part-2-connections-and-models的.aspx
我在使用SQL Server Compact Edition 4.0的Entity Framework 5.0 Code First方法上遇到了同样的问题
为了解决这个问题,我将实例传递SqlCeConnection给了DbContext构造函数:
public class Storage : DbContext
{
public Storage()
: base(new SqlCeConnection("Data Source=Database.sdf;Persist Security Info=False;"),
contextOwnsConnection: true)
{ }
//...
}
Run Code Online (Sandbox Code Playgroud)
如果你不想内嵌连接字符串,你可以得到它的App.config通过ConfigurationManager
当然,你应该到System.Data.SqlServerCe的正确版本添加引用(看一些推广标签里面添加引用对话框)
此 TechNet 文章概述了将 EF 与 SQL Server Compact 结合使用的步骤。这句话引起了我的注意,可能会解决您的问题:
确保连接字符串中的provider=System.Data.SqlServerCe.3.5 。
(我假设您需要 4.0 而不是 3.5)
尝试一下,看看事情进展如何。
| 归档时间: |
|
| 查看次数: |
24819 次 |
| 最近记录: |