首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体或复杂类型'xxx‘不能在LINQ to Entities查询中构造吗?

实体或复杂类型'xxx‘不能在LINQ to Entities查询中构造吗?
EN

Stack Overflow用户
提问于 2012-07-11 16:20:29
回答 2查看 2.8K关注 0票数 0

模型

代码语言:javascript
复制
public partial class SayacOkumalariIstatistik
{
    public string sno { get; set; }
    public Nullable<System.DateTime> okuma_tarihi { get; set; }
    public Nullable<decimal> TotalUsageValue { get; set; }
    public string UsageType { get; set; }
}

函数

代码语言:javascript
复制
public IList<SayacOkumalariIstatistik> SayacOkumalariGetir()
{
    #region linq concat
    IEnumerable<SayacOkumalariIstatistik> sayac_okumalari_istatistik = entity.TblSayacOkumalari
        .Select(x => new SayacOkumalariIstatistik
        {
            sno = x.sno.ToString() + "T1",
            okuma_tarihi = x.okuma_tarihi,
            TotalUsageValue = x.toplam_kullanim_T1,
            UsageType = "T1"
        })
        .Concat(entity.TblSayacOkumalari.Select(x => new SayacOkumalariIstatistik
         {
             sno = x.sno.ToString() + "T2",
             okuma_tarihi = x.okuma_tarihi,
             TotalUsageValue = x.toplam_kullanim_T2,
             UsageType = "T2"
         }))
         .Concat(entity.TblSayacOkumalari.Select(x => new SayacOkumalariIstatistik
         {
              sno = x.sno.ToString() + "T3",
              okuma_tarihi = x.okuma_tarihi,
              TotalUsageValue = x.toplam_kullanim_T3,
              UsageType = "T3"
         }));
        #endregion

        // Error occurs in here
        return sayac_okumalari_istatistik.ToList();
    }

Error message是我的问题标题。为什么会发生此错误。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-11 22:10:13

错误消息不言而喻。您不能也不应该使用实体类作为投影DTO(我猜SayacOkumalariIstatistik就是这样一个类)

您至少有3种选择:

  1. 首先检索原始实体,然后使用Linq to objects进行投影(即在ToList调用之后)。
  2. 创建一个DTO类(SayacOkumalariIstatistikViewModelSayacOkumalariIstatistikDTO等)并在查询中使用该类。
  3. 使用匿名对象进行投影。<代码>H210<代码>G211
票数 2
EN

Stack Overflow用户

发布于 2012-07-11 22:13:00

这样做是为了在Linq to Entities和Linq to objects之间有一个明确的区别/转折点。在Linq to Sql中,您可以轻松地在内存中执行大型操作,而不是在数据库中,而不是完全不知道代码将会执行这些操作。

您必须只返回匿名类型、基元类型、实体类型或三者的组合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11428423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档