2010-10-28 68 views
6

我有一个VS2008 Web项目与EF1数据模型。现在我已经把它转换成一个带有.Net 4的VS2010项目。我的问题是关于实体框架。我怎样才能看到它是什么版本的EF。或者我怎样才能确保它是EF 4?查看实体框架版本

回答

3

有真的在这里两个问题:

  1. 什么是EF集版本?在一个(正确的).NET 4项目中,它确实只能是4.
  2. 什么是EF模型版本?也许令人惊讶的是,EF 4程序集在运行时支持EF 1和EF 4模型。

当您将VS 2008项目升级到.NET 4时,它也会将EDMX升级到EF 4模型。但如果你跳过了这个或者只是想确认它是正确的,那么看看EDMX中的xmlns元素。

  • 对于CSDL,EF 4是“http://schemas.microsoft.com/ado/2008/09/edm”; EF 1是“http://schemas.microsoft.com/ado/2006/04/edm”。
  • 对于SSDL,EF 4是“http://schemas.microsoft.com/ado/2009/02/edm/ssdl”; EF 1是“http://schemas.microsoft.com/ado/2006/04/edm/ssdl”
  • 对于MSL,EF 4是“http://schemas.microsoft.com/ado/2008/09/映射/ CS“; EF 1是“urn:schemas-microsoft-com:windows:storage:mapping:CS”
+0

谢谢!在这种情况下,我可以确认我的模型是EF4。 – karl 2010-10-28 13:34:48

9

您可以查看System.Data.Entity.dll版本的项目引用。

6

看看你的'System.Data.Entity'参考版本,如果它是3.5.0.0,那么它是EF1。如果它是4.0.0.0,那么你使用EF4。

+0

谢谢你的回答。所以,如果我用VS2010打开一个VS2008项目,并且成功转换(.Net 4和System.Data.Entity是4.0 ...),我的数据模型也会转换吗?或者我需要从数据库重建我的nodel吗? – karl 2010-10-28 12:40:21

+0

我不确定,但我不认为它会自动转换。无论如何,你为什么不测试它?做一个备份,继续并告诉我们结果。我认为EF4与EF1有后向兼容性。 – goenning 2010-10-28 13:23:15