1

我正在尝试使用 SQL Server 精简版 4.0 创建一个简单的 EF 代码第一个示例。使用的技术包括:Visual Studio 2012 Ultimate。

所以我创建了一个简单的 poco 类:

namespace MvcApplication2.Models
{
    public class Customer
    {
        public int CustomerId { get; set; }
        public string CustomerName { get; set; }
    }
}

还有一个简单的上下文类:

namespace MvcApplication2.Models
{
    public class CustomerEntity : DbContext
    {
        public DbSet<Customer> Customers { get; set; }
    }
}

然后我尝试使用模板创建一个控制器类:MVC Controller with read/write actions and views using entity framework。

  • 模型类 -> 客户
  • 数据上下文类 -> CustomerEntity

我收到以下错误:

Unable to retreive metadata for ... 不支持使用相同的 dbcompiledmodel 针对不同类型的数据库服务器创建上下文。...

我应该说这个完全相同的代码使用 LocalDB 没有问题。

我认为需要的唯一区别是将以下内容添加到 web.config 文件中。

<add name="CustomerEntity"
     connectionString="Data Source=|DataDirectory|CustomerEntity.sdf"
     providerName="System.Data.SqlServerCe.4.0" />

我还缺少其他东西吗?

我知道我不可能是唯一一个遇到这个问题的人。

4

1 回答 1

0

您在 EF 缓存中复制数据库和在 App_Data 中复制数据库的问题。解决此问题的最简单方法是注释您的默认构造函数CustomerEntity,从模板创建控制器,然后取消注释。

于 2012-09-28T08:24:46.673 回答