C# 为什么使用System.Data.Entity只需要引用实体框架?
我注意到,通过安装Entity Framework NuGet包,项目中添加了三个引用:C# 为什么使用System.Data.Entity只需要引用实体框架?,c#,.net,entity-framework,namespaces,C#,.net,Entity Framework,Namespaces,我注意到,通过安装Entity Framework NuGet包,项目中添加了三个引用: 实体框架 EntityFramework.SqlServer System.ComponentModel.DataAnnotations 然后我可以使用System.Data.Entity,而无需在项目中引用它。怎么可能呢?我如何在自己的作品中实现它 顺便说一下,我还查看了Microsoft提供的源代码,并确保程序集名称也是System.Data.Entity: 我可以使用System.Data.En
- 实体框架
- EntityFramework.SqlServer
- System.ComponentModel.DataAnnotations
System.Data.Entity
,而无需在项目中引用它。怎么可能呢?我如何在自己的作品中实现它
顺便说一下,我还查看了Microsoft提供的源代码,并确保程序集名称也是System.Data.Entity
:
我可以使用System.Data.Entity,而无需在项目中引用它。怎么可能呢
System.Data.Entity是一个命名空间
EntityFramework.dll包含许多属于System.Data.Entity命名空间的类型。例如背景
命名空间:System.Data.Entity
程序集:EntityFramework(在
EntityFramework.dll)
在.NET Framework中有一个名为System.Data.Entity.dll的程序集,但EF不再使用它。EF最初是.NET框架本身的一部分,但现在通过NuGet提供。对旧版本EF的旧支持仍然是.NET框架的一部分,因为使用旧EF的旧应用程序仍然需要它。见:
在EF的早期版本中,代码在核心库之间拆分
(主要是System.Data.Entity.dll)作为.NET的一部分提供
框架和带外(OOB)库(主要是
EntityFramework.dll)在NuGet包中提供。EF6接受代码
并将其合并到OOB库中。
这是必要的,以使EF成为开源的,并用于
它能够以不同于.NET Framework的速度发展。这个
这样做的结果是需要重新构建应用程序
针对移动的类型
目标是什么?你有什么问题?@Aldert其实这不是问题,问题在于学习.NET如何工作。当然,我可以利用这些技术。啊哈,所以
System.Data.Entity
是EntityFramework
assembly(在EF6中)中的名称空间!谢谢。这真的很有帮助。名称空间和程序集不是多对多的。程序集可以包含多个命名空间中的类,命名空间可以跨多个程序集包含类。