1. 程式人生 > >在 LINQ to Entities 查詢中無法構造實體或復雜類型“Cits.Data.LineImg”。

在 LINQ to Entities 查詢中無法構造實體或復雜類型“Cits.Data.LineImg”。

lis 錯誤 code num list 構造 enum title ==

錯誤代碼:

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”。