【问题标题】:Determine version of Entity Framework I am using?确定我正在使用的实体框架的版本?
【发布时间】:2021-06-24 07:52:45
【问题描述】:

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

我如何知道应用程序中使用的是哪个版本?

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

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

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

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

    【讨论】:

    • 好吧,这假设您通过包管理器安装了参考,但对于我们许多人来说并非如此。
    • @LaurentJalbertSimard 我没有明确这样做,它仍然出现。
    【解决方案2】:

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

    【讨论】:

    • 可以,但是4.0有不同的版本。
    • 在下面查看我的回答,了解微软的版本历史。
    • 现在共有三个版本,EFV5 与 .NET 4.5 相关联,截至目前,EFv6 正在建设中
    • 使用 Get-Package(见其他答案)。它更快更准确。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      如果您使用的是 EF 核心,下面的这个命令可能会有所帮助

      dotnet ef --version
      

      【讨论】:

        【解决方案5】:

        回答您问题的第一部分:Microsoft 发布了他们的Entity Framework version history here

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              【解决方案8】:
                 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;
                  }
              

              【讨论】:

                【解决方案9】:

                在项目下的解决方案资源管理器中 单击 Dependencies->NuGet->Microsoft.NetCore.All-> 这里将出现所有 Microsoft .NetCore pakcage 的列表。在括号版本中搜索Microsoft.EntityFrameworkCore(2.0.3)可以看到 Like this

                After finding package

                【讨论】:

                  【解决方案10】:

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

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

                  【讨论】:

                    猜你喜欢
                    • 2023-03-12
                    • 2016-10-17
                    • 1970-01-01
                    • 2011-03-29
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-06-16
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多