确定我正在使用的实体框架版本?

问题描述 投票:0回答:12

我相信有两个版本1和2?版本 2 被称为实体框架 4.0?

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

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

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
entity-framework
12个回答
191
投票

获取您正在使用的 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....                                           

它显示更多内容,您可能需要向上滚动才能找到 EF 行,但这是我所知道的最简单的查找方法。


87
投票

有两个版本: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 组件。或者,您可以打开路径属性中列出的文件位置,然后右键单击相关组件,选择属性,然后选择详细信息选项卡并查看产品版本。


42
投票

可以在packages.config文件中查看。

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

31
投票

如果您使用 EF core,下面的命令可能会有所帮助

dotnet ef --version

18
投票

回答您问题的第一部分:Microsoft 在此处发布了他们的 Entity Framework 版本历史记录


11
投票

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


4
投票

如果你去引用,点击实体框架,查看属性它会告诉你版本号。


3
投票
   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;
    }

2
投票

在项目下的解决方案资源管理器中 单击“依赖项”->“NuGet”->“Microsoft.NetCore.All”-> 将显示所有 Microsoft .NetCore pakcages 的列表。括号版本搜索Microsoft.EntityFrameworkCore(2.0.3)可以看到 Like this

After finding package


1
投票

对于 .NET Core,这是我了解我正在使用的 EntityFramework 版本的方式。假设我的项目名称是 DemoApi,我可以使用以下内容:

  1. 我将打开 DemoApi.csproj 文件并查看包参考,然后我将看到我正在使用的 EntityFramework 版本。
  2. 根据情况打开命令提示符、Powershell 或终端,将目录更改为 DemoApi,然后输入以下命令:👉🏻
    dotnet list DemoApi.csproj package

1
投票
public static string GetEntityFrameworkDllVersion()
    {
        var efAssembly = System
            .AppDomain
            .CurrentDomain
            .GetAssemblies()
            .FirstOrDefault(x => x.FullName.Contains("EntityFramework"));

        if (efAssembly == null)
        {
            return "EF is not installed in project";
        }

        return efAssembly
            .GetCustomAttributes<AssemblyInformationalVersionAttribute>()
            .First()
            .InformationalVersion;
    }

0
投票

或者在 Visual Studio 中只需转到:

工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包...

它会向您显示每个项目使用的版本

© www.soinside.com 2019 - 2024. All rights reserved.