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中文网其他相关文章!