在SQLCompact和SQLExpress存储之间切换实体框架4

时间:2010-07-04 16:01:30

标签: entity-framework-4 edmx

这是用例

  • 在SQLExpress中,我创建了一个包含列ID和名称
  • 的表格
  • edmx是基于该表
  • 创建的
  • 我创建了具有相同结构的SQLCompact数据库(表名称帖子,列ID和名称)

如果我更新app.config指向SqlCompact DB(假设我以正确的方式执行此操作),EF代码是否可以与SqlCompact db无缝协作?

我之所以问这个问题,与我上面尝试的例外情况有关

System.InvalidCastException occurred
  Message=Unable to cast object of type 'System.Data.SqlServerCe.SqlCeConnection' to type 'System.Data.SqlClient.SqlConnection'.
  Source=System.Data
  StackTrace:
       at System.Data.SqlClient.SqlCommand.set_DbConnection(DbConnection value)
       at System.Data.Common.DbCommand.set_Connection(DbConnection value)
       at System.Data.Common.Utils.CommandHelper.SetStoreProviderCommandState(EntityCommand entityCommand, EntityTransaction entityTransaction, DbCommand storeProviderCommand)
       at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
       at System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
       at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
       at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
       at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
       at System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__1[TResult](IEnumerable`1 sequence)
       at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot)
       at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[S](Expression expression)
       at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source)

1 个答案:

答案 0 :(得分:2)

听起来单个edmx不能同时用于sql server和sql compact MSDN Forums link with answer

我不确定这对edmx有多重要,但这就是我的问题的答案:)