linq到實體:在查詢中構建映射的實體
>>本文解決了嘗試將自定義選擇投影到LINQ內的映射實體到實體查詢時遇到的常見錯誤。
理解問題
當您嘗試在Query'sProduct
子句中創建映射實體的新實例(例如您的select
>實體)時,錯誤的“實體不能在LINQ中構造到實體查詢”其屬性的子集。
示例和說明:
<code class="language-csharp">public IQueryable<product> GetProducts(int categoryID) { return from p in db.Products where p.CategoryID == categoryID select new Product { Name = p.Name }; }</code>這將嘗試創建僅包含
>實體的所有屬性。 Product
>。
Name
Product
>解決方案:匿名類型和DTOS
>
解決此問題,請使用匿名類型或數據傳輸對象(DTO):
匿名類型:
project to僅包含必要屬性的匿名類型:<code class="language-csharp">public IQueryable GetProducts(int categoryID) { return from p in db.Products where p.CategoryID == categoryID select new { Name = p.Name }; }</code>
> IQueryable
dtos(數據傳輸對象):Name
創建一個單獨的類,代表所需的數據結構:
以上是為什麼我不能在LINQ中構建映射的實體,以查詢實體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!