在 LINQ to Entities 查询中无法构造实体或复杂类型“Cits.Data.LineImg”。

Posted coce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 LINQ to Entities 查询中无法构造实体或复杂类型“Cits.Data.LineImg”。相关的知识,希望对你有一定的参考价值。

错误代码:

adlist = _sImg.Where(o => o.AdType == 11).OrderBy(o => o.Desc).OrderByDescending(o => o.Id).Select(i => new LineImg
{
    Url = i.Url,
    ImgUrl = i.ImgUrl,
    Title = i.Title
}).ToList();

修正代码:

adlist = _sImg.Where(o => o.AdType == 11).OrderBy(o => o.Desc).OrderByDescending(o => o.Id).Select(i => new LineImg
{
    Url = i.Url,
    ImgUrl = i.ImgUrl,
    Title = i.Title
}) as List<LineImg>;

 

ef原生错误代码:

 

db.Set<LineImg>().Where(o => o.AdType == 11).OrderBy(o => o.Desc).OrderByDescending(o => o.Id).Select(i => new LineImg
{
    Url = i.Url,
    ImgUrl = i.ImgUrl,
    Title = i.Title
}).ToList();

 

ef原生正确代码:

 

var list = db.Set<LineImg>().Where(o => o.AdType == 11).OrderBy(o => o.Desc).OrderByDescending(o => o.Id).Select(i => new
{
    Url = i.Url,
    ImgUrl = i.ImgUrl,
    Title = i.Title
}) as IEnumerable<LineImg>;
var list = db.Set<LineImg>().Where(o => o.AdType == 11).OrderBy(o => o.Desc).OrderByDescending(o => o.Id).Select(i => new dto
{
    Url = i.Url,
    ImgUrl = i.ImgUrl,
    Title = i.Title
}).ToList();

网上说“ linq 选择数据时候 不能new 已知的对象,只能匿名的。 但是如果从一个 List 列表 就可以new 已知的类。”这个说法不认同。

以上是关于在 LINQ to Entities 查询中无法构造实体或复杂类型“Cits.Data.LineImg”。的主要内容,如果未能解决你的问题,请参考以下文章

在 LINQ to Entities 查询中无法构造实体或复杂类型“Cits.Data.LineImg”。

LINQ To Entities 无法识别方法 Last。真的吗?

LINQ To Entities 无法识别方法 Last。真的吗?

LINQ to Entities 无法识别该方法

LINQ to Entities 无法识别方法“System.Object GetValue(...)”

为啥 LINQ-to-Entities 将此查询放在子选择中?