簡體   English   中英

防止在實體框架的TPT繼承中加載子類表行

[英]Prevent the loading of subclass table rows in TPT inheritance on Entity Framework

我的數據庫中具有以下表層次結構,該表層次結構使用“按表類型”(TPT)繼承模式映射到實體框架模型(數據庫優先):

TPT繼承

EF模型中的映射很簡單: AssetContent是基本抽象類,而其他2是具體子類。

AssetContent表與另一個表進行多對多關系,為了保持畫面清晰,省略了該表。

我的問題是,我如何構建一個Linq-to-Entities查詢以使用Include()加載相關的AssetContent表,從而根本不加載2個“子表”? 這對於DatabaseAssetContent表尤其重要,該表的BinaryContent字段可能很大,並且與我要構建的查詢的發布者無關。 據我觀察,無論是否啟用延遲加載,Entity Framework都會自動加載表的整個層次結構,但是我對僅加載AssetContent表中的行感興趣。

使用Linq-to-Entities(對於Entity Framework 6)是否可以進行這種查詢?

最終,我將AssetContent表的字段( Id除外)移到了另一個新表,稱為AssetContentWithMetadata ,該表與AssetContent表具有1-1的關系。 這樣, AssetContent表的確確實有點尷尬,只有一個字段(ID),但是現在我可以單獨加載元數據表,而不會給內容增加負擔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM