我有这个复杂的模型:
public class complexModel
{
public aTable aObject { get; set; }
public List<bTable> bObjectList { get; set; }
public List<cTable> cObjectList { get; set; }
}
然后在控制器中,我声明此对象:
var AAA = new complexModel();
现在此代码可以正常工作
AAA.bObjectList= (from tdrc in db.bTable
select new bTable
{
ID = tdrc.ID ,
bName = tdrc.bName,,
}).ToList();
但是当我写这篇文章
AAA.cObjectList= (from tdrc in db.cTable
where tdrc.cID == id
select new cTable
{
cID = tdrc.cID,
cName = tdrc.cName,
}).ToList();
我收到此错误:
System.NotSupportedException:'无法在LINQ to Entities查询中构造实体或复杂类型'Project.DAC.cTable'。'
答案 0 :(得分:0)
Hello
您不能AAA.cObjectList= (from tdrc in db.cTable
// ^
where tdrc.cID == id
select new cTable
// ^
{
cID = tdrc.cID,
cName = tdrc.cName,
}).ToList();
的SomeType是实体类型。那是在上下文中声明的类型/类。
应该使用匿名类型
select new SomeType
或者如果您想要实体类型:
AAA.cObjectList= (from tdrc in db.cTable
where tdrc.cID == id
select new
{
cID = tdrc.cID,
cName = tdrc.cName,
}).ToList();
或使用非实体类型。