有沒有辦法“分組”.Include下面的呼叫并將它們封裝在另一種方法中,我可以像下面這樣呼叫?
var entity = _db.Entity.AsNoTracking()
.AsSplitQuery()
.Include(x => x.Prop1)
.Include(x => x.Prop2)
.Include(x => x.Prop3)
.Include(x => x.Prop4)
.FirstOrDefault(x => x.Id == id);
就像是:
var entity = _db.Entity.AsNoTracking()
.AllIncludes()
.FirstOrDefault(x => x.Id == id);
我知道 IEnumerable 上的擴展方法,但我找不到我需要的。
uj5u.com熱心網友回復:
您可以通過撰寫擴展方法來實作這一點,這將允許您AllIncludes在資料庫物體之上“添加”一個方法。
這將允許您封裝.Include呼叫。
假設_db.Entity是型別IQueryable<Entity>:
public static class QueryableExtensions
{
public static IQueryable<Entity> AllIncludes(this IQueryable<Entity> source)
{
return source
.Include(x => x.Prop1)
.Include(x => x.Prop2)
.Include(x => x.Prop3)
.Include(x => x.Prop4);
}
}
按預期呼叫:
var entity = _db.Entity.AsNoTracking()
.AllIncludes()
.FirstOrDefault(x => x.Id == id);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/318213.html
