gpt4 book ai didi

c# - 为什么使用 System.Data.Entity 只需要引用 Entity Framework ?

转载 作者:行者123 更新时间:2023-12-04 17:01:47 27 4
gpt4 key购买 nike

我注意到通过安装 Entity Framework NuGet 包,三个引用被添加到项目中:

  • Entity Framework
  • EntityFramework.SqlServer
  • System.ComponentModel.DataAnnotations

  • 然后我可以使用 System.Data.Entity没有在我的项目中引用它。这怎么可能?我如何在自己的作品中实现它?

    顺便说一下,我也看了微软提供的源代码,确定程序集名称是 System.Data.Entity也:

    System.Data.Entity.csproj

    最佳答案

    I can use System.Data.Entity without having it referenced in my project. How is it possible?


    System.Data.Entity 是一个命名空间。
    EntityFramework.dll 包含许多属于 System.Data.Entity 命名空间的类型。 EG 数据库上下文。
    DbContext Class

    Namespace: System.Data.Entity

    Assembly: EntityFramework (inEntityFramework.dll)


    .NET Framework 中有一个名为 System.Data.Entity.dll 的程序集,但 EF 不再使用它。 EF 最初是 .NET Framework 本身的一部分,但现在通过 NuGet 提供。对旧版本 EF 的旧支持仍然是 .NET Framework 的一部分,因为使用旧 EF 的旧应用程序仍然需要它。看:

    In previous versions of EF the code was split between core libraries(primarily System.Data.Entity.dll) shipped as part of the .NETFramework and out-of-band (OOB) libraries (primarilyEntityFramework.dll) shipped in a NuGet package. EF6 takes the codefrom the core libraries and incorporates it into the OOB libraries.This was necessary in order to allow EF to be made open source and forit to be able to evolve at a different pace from .NET Framework. Theconsequence of this is that applications will need to be rebuiltagainst the moved types.


    Upgrading to Entity Framework 6

    关于c# - 为什么使用 System.Data.Entity 只需要引用 Entity Framework ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53237168/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com