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();
}
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();
}