【问题标题】:Using dot net Entity Framework class library build in dot net core project在点网核心项目中使用点网实体框架类库构建
【发布时间】:2020-09-23 08:48:31
【问题描述】:

我有一个基于 MVC dot net 和 Entity Framework Code first approach 创建的用户管理面板,实体框架是一个基于 dot net 构建的单独类库。

现在,我需要为其创建一个管理面板,并希望在 dot net core 上创建它,但是我计划使用基于 dot net 标准的相同数据库和 EF Framework 类库.

这可以实现吗,我保留一个单独的 Entity Framework .NET 项目,它可以被 .Net 项目和 dot net core 使用。

【问题讨论】:

    标签: c# asp.net-mvc entity-framework .net-core entity-framework-core


    【解决方案1】:

    由于您没有提供您(打算)使用的 MVC、Entity Framework 和 .NET Core 的版本,因此很难给您提供准确的建议。

    .NET Core EF6 兼容性

    正如this article 中所建议的,建议在使用 .NET Core 时使用 Entity Framework Core。但是 Entity Framework 6 也支持 .NET Core 应用程序。 此信息可在 an overview from the Microsoft Entity Framework Documentation site 中找到,他们将 EF6 与 EF Core 进行比较

    EF Core 3.1 通过使用 .NET Standard 2.0 在 .NET Core 和 .NET Framework 上运行。但是,EF Core 5.0 不会在 .NET Framework 上运行。 ... EF6.4 通过多目标在 .NET Core 和 .NET Framework 上运行。

    在同一篇文章中,他们还比较了 EF6 和 EF Core 之间的功能兼容性。他们还就在处理现有项目时将 DAL 升级到 EF Core 是否有益/需要提供建议。

    结论

    您可能可以将用 EF6 编写的现有数据访问层与 .NET Core 应用程序一起使用,但是您是否应该取决于您的应用程序的进一步开发/要求你可以在this article找到。

    【讨论】:

    • 考虑到还有其他的挑战,.net 支持的一些 dll,dot net core 不会支持,留下复杂性,你认为最好的方法是什么,如我想在现有数据库(已经使用实体框架 6 设置)上构建一个单独的管理面板,我正在使用 mvc 5
    • 您希望重用数据访问层代码还是仅重用数据库?用不同的 DAL(用 EF Core 编写)重用同一个数据库肯定会起作用,但是会让你复制很多代码。只要您不引用任何 .NET Core 不兼容的项目,使用现有 DAL(使用 EF 6)也可以在您的 .Net Core 项目中使用。我建议将现有项目分成两个项目,一个包含 UMP 的应用程序逻辑,另一个包含数据访问代码(在类库项目中)。然后你可以在你的管理项目中重用后者
    • EF6 项目已经在一个单独的项目中。当前结构如下: HelloWorld.API HelloWorld.BLL (Business Logic) HelloWorld.Data (EF) 理想情况下,我也想在 .net core 上使用这个项目,但现在不是,我在想我可以设置新的核心项目如下:NewHelloWorld.API、NewHelloWorld.BLL、NewHelloWorld.Data,可以新建 EF Core Library 'NewHelloWorld.BLL',并在 HelloWorld.BLL 中引用它,这将使我的生活变得轻松,我将使用更新的 EF框架,不需要重做这些事情,你有什么建议?
    • 你的情况我不清楚。是否要在旧项目的 BL 中引用新项目的新 BL?如果是这样,这与您原来的问题有什么关系?我假设只有 DATA 项目包含 EF 引用?
    猜你喜欢
    • 1970-01-01
    • 2018-01-15
    • 2021-05-18
    • 2019-02-19
    • 2021-03-02
    • 2018-05-19
    • 2018-09-18
    • 2021-05-12
    • 1970-01-01
    相关资源
    最近更新 更多