c# - inner - linq to entities join
La entidad o tipo complejo '''' no se puede construir en una consulta LINQ to Entities (1)
Posible duplicado:
La entidad no se puede construir en una consulta LINQ to Entities
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; }
}
me da un error cuando trato de iterar, me gustaría algo de ayuda con esto
En Linq-to-Entities solo puedes proyectar a un tipo anónimo o una clase regular. No puede proyectar a un tipo de entidad existente. Puedes con linq-to-objects como así
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();