![](/img/trans.png)
[英]How to insert data into multiple tables in ASP. NET MVC. Entity Framework
[英]ASP.Net MVC. How always include related data in Entity Framework queries?
使用實體框架選擇關系表時,我們必須在查詢中手動“包括”相關數據,例如:
MyEntity entity = db.MyEntities
.Include(e => e.related_1)
.Include(e => e.related_2)
.FirstOrDefault(e => e.Id == id);
否則,entity.related_1或entity.related_2將為null。
我想知道是否有一種方法可以在選擇它之前設置預包含關系,而不必每次都選擇相關數據。 例如:
db.preInclude(???) // not a real method.
someOtherCode(...)
MyEntity entity_1 = db.MyEntities.Find(id_1);
MyEntity entity_2 = db.MyEntities.Find(id_2);
MyEntity entity_3 = db.MyEntities.Find(id_3);
創建一個返回所需查詢的函數,然后執行它:
public IQueryable getTheEntity(DbContext database) {
var query = from e in database.MainEntity.Include("SubEntity1.Another").Include("SubEntity2");
return query;
}
然后,在需要完整模型時調用該函數:
using (MyDbContext database = new MyDbContext()) {
var result = (from e in getTheEntity(database) where ...).FirstOrDefault();
}
您甚至可以將getTheEntity(...)
擴展為DbContext類的擴展名,因此調用它的過程會比較簡單:
var result = (from e in database.getTheEntity() where ...).ToList();
將您的相關虛擬化,從而啟用延遲加載,這樣,您無需顯式調用Include,當您引用此虛擬相關實體時,將從數據庫中檢索它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.