> 實體框架linq投影錯誤:“無法創建實體實例”
在將LINQ與實體框架中使用LINQ(LINQ-TO-ENTITY)時,遵循特定投影規則至關重要。 嘗試直接在LINQ查詢中創建新實體實例時會出現一個常見錯誤。
考慮以下方案:一個旨在僅選擇>表的屬性屬性的查詢,如果它試圖將其項目投影到Name
> entity。
Product
核心問題是不允許直接投影到映射的實體上(例如Product
)。 該解決方案涉及投影到匿名類型或數據傳輸對象(DTO)。
>使用匿名類型進行投影:Product
此方法使用匿名類型保存所選屬性。
public IQueryable<object> GetProducts(int categoryID) { return from p in db.Products where p.CategoryID == categoryID select new { Name = p.Name }; }
Name
>
>在這裡,專門的類提供了接收投影數據的結構化方法。 對於更好的類型的安全性和可維護性,這通常是首選的。 >
>通過使用匿名類型或DTO,我們繞過了限制在LINQ查詢中創建實體的限制,從而啟用了靈活的自定義預測。以上是為什麼Linq到實體在投影期間會丟棄'無法構建實體”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!