【发布时间】:2017-09-22 12:33:22
【问题描述】:
ORM 是实体框架核心。 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();
}
}
【问题讨论】:
-
你可以使用泛型吗?
UpdateAsync<T>(this T obj) where T : IMyEntity -
对于 remove-by-id 情况,您显然需要在
IMyEntity类型内有一个通用的Id。
标签: c# entity-framework-core crud boilerplate