C# 类行为在EF核心模型中位于何处

C# 类行为在EF核心模型中位于何处,c#,.net,database,model-view-controller,ef-core-3.0,C#,.net,Database,Model View Controller,Ef Core 3.0,也许这是一个非常基本的问题,但我想不出来。 让我解释一下: 我从MVC原则(我使用了Laravel)知道有模型和控制器(这里不关心视图)。这些模型与EF Core中的模型相同,它们表示数据库中的表等。然后我们有控制器,在其中实现CRUD功能 问题是我应该在哪里编写这种类似CRUD的功能,即使它不是CRUD逻辑。我的直觉告诉我,我只需要创建另一个类来表示这个模型的控制器,并在其中指定所有CRUD功能,比如读、写等。但我不知道这个想法是否符合约定,是否有任何约定或最佳实践 我应该在哪里实现这一点 谢

也许这是一个非常基本的问题,但我想不出来。 让我解释一下:

我从MVC原则(我使用了Laravel)知道有模型和控制器(这里不关心视图)。这些模型与EF Core中的模型相同,它们表示数据库中的表等。然后我们有控制器,在其中实现CRUD功能

问题是我应该在哪里编写这种类似CRUD的功能,即使它不是CRUD逻辑。我的直觉告诉我,我只需要创建另一个类来表示这个模型的控制器,并在其中指定所有CRUD功能,比如读、写等。但我不知道这个想法是否符合约定,是否有任何约定或最佳实践

我应该在哪里实现这一点


谢谢你的帮助!:)

我假设您正在创建web API或类似的API,并将数据存储在数据库中。由于您使用的是MVC模式,您似乎已经有了模型,并且可能需要控制器,所以现在让我们忽略视图

因为您对在何处创建CRUD逻辑感兴趣,所以我将使用WebAPI场景。根据应用程序的不同,您有许多选项。您可以实现一个CQRS模式,并为命令提供单独的类,例如数据库的插入和更新,以及检索数据的查询类。您可以使用实体框架、Dapper或其他任何您喜欢的工具来实现这一点。存储库模式是另一种选择,如果你在谷歌上搜索,你会发现很多微软的例子

在一个控制器中,您可以有4个操作:获取、发布;推杆;删除东西。注意这里的命名约定是HttpMethodEntity。通过这些操作,您可以验证数据并调用数据层的方法来执行CRUD操作

一些要研究的主题,从这些开始,你应该了解基本知识以及如何解决问题

  • 存储库模式
  • NET核心Web API
  • CQRS
  • 整洁的
  • 实体框架

  • 1:谢谢你的全面回答!我是否正确理解您的建议,就像我一样,使用单独的类,并通过这些单独的类与EF核心模型(也是类)交互?唯一的区别是您建议使用CQRS模式而不是CRUD,对吗?这不是一个web API,我还没有开发任何东西。只是在想我应该如何发展它。但是,我打算在应用程序中使用外部api,如果这有什么不同,我不这么认为。2:因此,通过这种方法,EF核心模型通过使用CRUD/CQRS类进行封装,我的意思是,您正在通过这些CRUD/CQRS类与数据库/EF-Core_模型交互,而不是在您应该使用它的每一个地方直接与数据库/模型交互。因此,通过这种方法,您也可以减少重复代码。