实体框架使用带有sqlce和sql server / sql express数据库的模型

时间:2014-04-11 21:30:51

标签: c# .net sql-server entity-framework sql-server-ce

我有一个实体4.0模型,它使用SqlServerCE数据库作为其提供者。我正在尝试添加SQL Server连接字符串,以便我可以选择使用SQL Server或SQLCompact数据库。

这是我的连接字符串

<?xml version="1.0" encoding="utf-8"?>      
<configuration>     
 <configSections>    
 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
 </configSections>          

 <connectionStrings>    
 <--<add name="SomeDBEntities" connectionString="metadata=res://*/SomeDB.csdl|res://*/SomeDB.ssdl|res://*/SomeDB.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;Data Source=ABC.sdf&quot;" providerName="System.Data.EntityClient" />-->    

 <add name="SomeDBEntities" connectionString="metadata=res://*/SomeDB.csdl|res://*/SomeDB.ssdl|res://*/SomeDB.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=Database;Initial Catalog=MyDatabase;Integrated Security=True;multipleactiveresultsets=True;&quot;" providerName="System.Data.EntityClient" />      
 </connectionStrings>    
 <entityFramework>    

 <!--<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">    <parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
 </defaultConnectionFactory>-->

 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
 <parameters>      

 <parameter value="Data Source=Database;Integrated Security=True;multipleactiveresultsets=True" />    
 </parameters>
 </defaultConnectionFactory>

        &lt; - &gt;            
     

当我尝试查询实体模型时,出现以下错误: SqlCeCommand.CommandTimeout不支持非零值。

如何将提供程序从SqlServerCE设置为SqlClient?

1 个答案:

答案 0 :(得分:0)

在edmx文件中指定了SqlServerCE提供程序。

您需要创建第二个SSDL文件,如下所述:http://www.codeproject.com/Articles/82017/Preparing-an-Entity-Framework-model-for-multi-prov.aspx