我有一个大型 MVVM 类型的解决方案,我最初使用带有 .NET4 的 VS2010 Express 编写。该模型使用实体来访问 SQL Server 2012 数据库。
我最近设法丢失了 Model 项目,这似乎没什么大不了的,因为它实际上由自动生成的实体和一些小的修改组成。因此,我使用带有 .NET4.5 和 EF5 的 VS2012 重新创建了模型项目。我已将 ViewModel 升级到 .NET4.5 并使用包管理器导入了 EntityFramework。
问题是,我的 ViewModel(一个单独的类库)抛出了几个我无法弄清楚的编译时错误。这些围绕:
- 主实体类(在我的例子中是 CN2Entities)不再有一个接受连接字符串的构造函数。自动完成证实了这一点,它只提供了一个无参数的构造函数。
映射到数据库表的各个数据库对象类,例如“地址”不再包含它们的静态成员。例如:
地址_ = 地址。创建地址(-1);
这段代码用来为我提供一个漂亮的空地址记录来填充并添加到数据库中。这不再有效。事实上,Address 类的唯一静态成员似乎是“Equals”和“ReferenceEquals”。
- 主 Entities 类不再包含 AddToAddress(Address) 函数,该函数将获取新的 Address 对象(表示 Addresses 表的一行)并将其添加到数据库中。然后我会调用 Entities.SaveChanges() 来提交添加。这个功能似乎仍然存在。
任何人都可以帮我解决发生了什么吗?这与 EF5 的新工作方式有关,还是我有一个损坏的解决方案没有为我提供正确的参考?