C# 无法在 LINQ to Entities 查询中构造实体或复杂类型“ ”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12916080/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
The entity or complex type ' ' cannot be constructed in a LINQ to Entities query
提问by Chazt3n
Possible Duplicate:
The entity cannot be constructed in a LINQ to Entities query
var tasks = from i in data.Incidents
join a in data.Accounts on i.CustomerID equals a.Acct_CID
select new Tasks()
{
creator_id = a.ID,
start_date = i.DateOpened,
end_date = i.DateCLosed,
product_code = i.ProductCode,
install_type = i.InstallType,
os = i.OSType,
details = i.Description,
solution = i.Solution,
creator_name = i.TechID,
category = i.Title,
text = "Ticket for" + " " + i.Name,
status_id = 7
};
foreach (var task in tasks)
data.Tasks.Add(task);
data.SaveChanges();
public class Incidents
{
[Key]
public int IncidentID { get; set; }
public string CustomerID { get; set; }
public string ProductCode { get; set; }
public string TechID { get; set; }
public DateTime DateOpened { get; set; }
public DateTime DateCLosed { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Solution { get; set; }
public string Name { get; set; }
public string OSType{ get; set; }
public string InstallType { get; set; }
public string AddOnSoftware { get; set; }
public string ScreenShare { get; set; }
}
gives me an error when I try to iterate, I would love some help with this
当我尝试迭代时给我一个错误,我希望得到一些帮助
采纳答案by Aducci
In Linq-to-Entities you can only project to an anonymous type or a regular class. You can't project to an existing entity type. You can with linq-to-objects like so
在 Linq-to-Entities 中,您只能投影到匿名类型或常规类。您无法投影到现有实体类型。你可以像这样使用 linq-to-objects
var tasks = (from i in data.Incidents
join a in data.Accounts on i.CustomerID equals a.Acct_CID
select new
{
creator_id = a.ID,
start_date = i.DateOpened,
end_date = i.DateCLosed
// ...
}).AsEnumerable().Select(x => new Tasks {
creator_id = x.creator_id,
start_date = x.start_date,
end_date = x.end_date
}).ToList();

