Answers:
有两个版本: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组件。或者,您可以打开“路径”属性中列出的文件位置,然后右键单击有问题的组件,选择属性,然后选择“详细信息”选项卡并查看产品版本。
获取正在使用的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线,但这是我所知道的最简单的查找方法。
回答您问题的第一部分:Microsoft 在此处发布了他们的Entity Framework版本历史记录。
如果您使用的是EF核心,则下面的此命令可能会有所帮助
dotnet ef --version
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;
}
在“解决方案资源管理器”中的“项目”下,单击“依赖关系”->“ NuGet”->“ Microsoft.NetCore.All->”,将显示所有Microsoft .NetCore包装的列表。搜索Microsoft.EntityFrameworkCore(2.0.3)的支架版本可以看到 像这样