【问题标题】:Separating database operations in ASP.NET Core MVC在 ASP.NET Core MVC 中分离数据库操作
【发布时间】:2020-03-19 10:16:20
【问题描述】:

我有一个带有多个项目的 ASP.NET Core MVC 应用程序:应用程序的主项目 (WebApp) 和一个带有模型和 db_context 的数据库类库。在数据库库中,我想添加所有操作方法,如保存、更新和删除。

但无论我尝试什么,我都无法让它发挥作用;这是我的方法:

MyProject.Data类库

public class DbOps
{
    public static async Task<bool> SaveCustomerChangesToDb(DbContext context, Model model, object objectToSave)
    {
       context.model.Add(objectToSave);
       await context.SaveChangesAsync();
       // some more logic...
       return true;
    }
}

该方法在控制器中被调用,但这只会导致错误。如何编写与模型无关的方法来保存此类中的更改,以便与多个视图模型和数据库模型一起使用?

我使用的是 EF en Net Core 2.1。在MyProject.WebApp 项目中,我已经正确设置了对数据类库的引用。所有的迁移也很顺利,例如,我可以在 VS2019 的 SQL 编辑器中手动添加数据。

【问题讨论】:

  • 看起来您正在尝试重新创建存储库模式
  • 现在正在研究,感谢您的建议。

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


【解决方案1】:

你可以这样写:

 public static async Task<bool> SaveCustomerChangesToDb<TEntity>(DbContext context, TEntity objectToSave) where TEntity:class
    {
       context.Set<TEntity>().Add(objectToSave);
       await context.SaveChangesAsync();
       // some more logic...
       return true;
    }

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多