Entity Framework 核心:为每个实体自动实施 CRUD?

Entity Framework Core: automate implement CRUD for each entity?

ORM 是 Entity Framework 核心。 DataModel 中大约有 100 种类型的实体。有没有办法避免为它们中的每一个键入样板基本 CRUD 操作代码?

public static async Task UpdateAsync(this Foo foo)
{
    using (var db = new DBContext())
    {
        db.Foo.Update();
        await db.SaveChangesAsync();
    }
}

public static async Task UpdateAsync(this Bar bar)
{
    using (var db = new DBContext())
    {
        db.Bar.Update(bar);
        await db.SaveChangesAsync();
    }
}

更新: 在这种情况下如何使用泛型?

public static async Task RemoveFooAsync(int fooID)
{
     using (var db = new DBContext())
     {
          db.Foo.Remove(db.Foo.Single(x => x.FooID == fooID));
          await db.SaveChangesAsync();
     }
}

Entity Frame Work 本身是通用的,因此您不需要这样做。

using (var dbCtx = new SchoolDBEntities())
    {
        //Add newStudent entity into DbEntityEntry and mark EntityState to Added
        dbCtx.Entry(newStudent).State = System.Data.Entity.EntityState.Added;

        // call SaveChanges method to save new Student into database
        dbCtx.SaveChanges();
    }

这里的 Entry 参数可以是任何类型的 <> App Db 上下文中的实体

使用实体对象创建这样一个可重用的方法

以同样的方式使用更新:

//save modified entity using new Context
using (var dbCtx = new SchoolDBEntities())
{
    //3. Mark entity as modified
    dbCtx.Entry(stud).State = System.Data.Entity.EntityState.Modified;     

//4. call SaveChanges
dbCtx.SaveChanges();
}