C# 如何使用LINQ和C从继承的类中选择所有列
我有一个使用entity Framework的auto code gen创建的实体,我不想修改该条目,因为我会在每个表上重新生成该代码。为了实现单个EF查询,我创建了一个继承实体,它添加了一个额外的列SessionId,如下所示C# 如何使用LINQ和C从继承的类中选择所有列,c#,entity-framework,linq,entity-framework-core,C#,Entity Framework,Linq,Entity Framework Core,我有一个使用entity Framework的auto code gen创建的实体,我不想修改该条目,因为我会在每个表上重新生成该代码。为了实现单个EF查询,我创建了一个继承实体,它添加了一个额外的列SessionId,如下所示 public class SpeakerWithSessionIdAdded : Speaker { public int SessionId { get; set; } } 演讲者的定义如下,但总共有大约100列,我知道应该少一些列,但现在是这样 publi
public class SpeakerWithSessionIdAdded : Speaker
{
public int SessionId { get; set; }
}
演讲者的定义如下,但总共有大约100列,我知道应该少一些列,但现在是这样
public class Speaker {
public int Id {get;set;}
public string firstName {get;set;}
public string lastName {get;set;}
... MANY MORE COLUMNS
}
我有一个LINQ查询,如下所示,其中我希望得到所有列以及我添加的SessionId。有没有简单的方法可以做到这一点,而不用使用反射,或者手工列出我想显示的每一列
var speakersWithSessionIdAdded = await
(from sessionPresenter in _dbContext.SessionPresenter
join speaker in _dbContext.Speakerson sessionPresenter.SpeakerId equals attendee.Id
where sessionIds.Contains(sessionPresenter.SessionId)
select new SpeakerWithSessionIdAdded
{
SessionId = sessionPresenter.SessionId,
Id = attendee.Id,
UserFirstName = attendee.UserFirstName,
UserLastName = attendee.UserLastName,
Email = attendee.Email,
Username = attendee.Username,
UserBio = attendee.UserBio,
AllowHtml = attendee.AllowHtml
.. I DON'T WANT TO LIST OUT 100 MORE LINES HERE FOR EVERY PROPERTY
}).ToListAsync();
return speakersWithSessionIdAdded.ToLookup(r => r.SessionId);
}手工写行是一次性的工作,你可以用比写这个问题更少的时间来完成;使用AutoMapper和map Speaker将扬声器映射到SessionDadded的扬声器。最好的解决方案,只要LINQ没有*运算符。