确定我使用的Entity Framework版本?


131

我相信有两个版本1和2?而版本2被称为Entity Framework 4.0?

我如何知道应用程序正在使用哪个版本?

这是在我的web.config中,这是否意味着我正在使用版本2?

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

Answers:


83

有两个版本:1和4。EFv4是.net 4.0的一部分,而EFv1是.net 3.5 SP1的一部分。

是的,上面的配置设置指向EFv4 / .net 4.0。

编辑 如果打开引用文件夹并找到system.data.entity,单击该项,然后在“属性”资源管理器中检查运行时版本号,则也会看到该子版本。例如,我的显示了运行时版本v4.0.30319,其中Version属性显示了4.0.0.0。该EntityFramework.dll可以以这种方式也可以看作。仅版本是4.1.0.0,运行时版本是v4.0.30319,它指定它是.NET 4组件。或者,您可以打开“路径”属性中列出的文件位置,然后右键单击有问题的组件,选择属性,然后选择“详细信息”选项卡并查看产品版本。


2
是的,但是有4.0的不同版本。
MikeKulls 2011年

请参阅下面的答案,以获取Microsoft的版本历史记录。
Marcel 2012年

1
现在有三个版本,并且EFV5与.NET 4.5相关联,到目前为止,EFv6正在构建中
Farax 2013年

4
使用Get-Package(请参阅其他答案)。更快,更准确。
Will Curran 2014年

157

获取正在使用的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线,但这是我所知道的最简单的查找方法。


15
好吧,这是假设您通过软件包管理器安装了引用,但对我们许多人而言并非如此。
Laurent Jalbert Simard

2
@LaurentJalbertSimard我没有明确这样做,它仍然出现。

39

可以在packages.config文件中检查它。

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.0.2" targetFramework="net40-Client" />
</packages> 


11

如果打开引用文件夹并找到system.data.entity,请单击该项目,然后在“属性”资源管理器中检查运行时版本号,您还将看到子版本。例如,Mine显示v4.0.30319,Version属性显示4.0.0.0。



1

如果您转到参考,请单击“实体框架”,查看属性。它将告诉您版本号。


1
   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;
    }

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.