确定我正在使用的实体框架的版本?
我相信有两个版本1和2?版本2被称为实体框架4.0?确定我正在使用的实体框架的版本?
如何判断应用程序中正在使用哪个版本?
这是在我的web.config这是否意味着我使用版本2?
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
有两个版本:1和4.EFv4是.net 4.0的一部分,EFv1是.net 3.5 SP1的一部分。
是的,上面的配置设置指向EFv4/.net 4.0。
编辑 如果您打开引用文件夹,找到system.data.entity
,单击该项目,然后检查在属性浏览器中运行时的版本号,你会看到子版本,以及。我的例子显示版本属性显示为4.0.0.0的运行时版本v4.0.30319。 EntityFramework.dll
也可以用这种方式查看。只有版本是4.1.0.0,运行时版本是v4.0.30319,它指定它是一个.NET 4组件。或者,您可以打开路径属性中列出的文件位置,然后右键单击有问题的组件,选择属性,然后选择详细信息选项卡并查看产品版本。
如果您打开参考文件夹并找到system.data.entity,请单击该项目,然后在Properties资源管理器中检查运行时版本号,您也会看到子版本。例如,我的v4.0.30319显示版本属性显示4.0.0.0。
获取正在使用的EF版本的另一种方法是在Visual Studio中打开程序包管理器控制台(PMC),然后在提示符下键入Get-Package。第一行是EntityFramework,并列出项目安装的版本。
PM> Get-Package
Id Version Description/Release Notes
-- ------- -------------------------
EntityFramework 5.0.0 Entity Framework is Microsoft's recommended data access technology for new applications.
jQuery 1.7.1.1 jQuery is a new kind of JavaScript Library.... `enter code here`
它显示更多,你可能不得不向后滚动找到EF行,但这是我知道的最简单的方法。
可以在packages.config文件中检查它。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.0.2" targetFramework="net40-Client" />
</packages>
如果你去参考,点击实体框架,查看属性它会告诉你的版本号。
internal static string GetEntityFrameworkVersion()
{
var version = "";
var assemblies = System.AppDomain.CurrentDomain.GetAssemblies().Select(x => x.FullName).ToList();
foreach(var asm in assemblies)
{
var fragments = asm.Split(new char[] { ',', '{', '}' }, StringSplitOptions.RemoveEmptyEntries).Select(x=> x.Trim()).ToList();
if(string.Compare(fragments[0], EntityFramework, true)==0)
{
var subfragments = fragments[1].Split(new char[] { '='}, StringSplitOptions.RemoveEmptyEntries);
version =subfragments[1];
break;
}
}
return version;
}
是的,但有4.0的不同版本。 – MikeKulls 2011-07-21 05:04:49
请参阅下面的Microsoft回复版本历史记录。 – Marcel 2012-11-06 07:09:06
现在有三个版本,EFV5与.NET 4.5相关联,截至目前,EFv6正在建设中 – Farax 2013-09-19 01:32:12