C# 如何转换EntityCollection<;T>;列出<;POCOObj>;
我有EntityFramework实体事件,其中EntityCollection为RSVP。我想将RSVP的EntityCollection转换为POCO类RSVP的通用列表 所以我想要EntityCollection->List 实现这一目标的最佳方式是什么 到目前为止,我有这个(它缺少RSVP部分) 谢谢。我建议您将“选择”代码放入名为“ToPoco(此事件)”的扩展方法中(您将使用此代码进行单个“事件”转换) 您还必须为多个“事件”转换实现另一个扩展方法,如C# 如何转换EntityCollection<;T>;列出<;POCOObj>;,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,我有EntityFramework实体事件,其中EntityCollection为RSVP。我想将RSVP的EntityCollection转换为POCO类RSVP的通用列表 所以我想要EntityCollection->List 实现这一目标的最佳方式是什么 到目前为止,我有这个(它缺少RSVP部分) 谢谢。我建议您将“选择”代码放入名为“ToPoco(此事件)”的扩展方法中(您将使用此代码进行单个“事件”转换) 您还必须为多个“事件”转换实现另一个扩展方法,如List ToPoco(this
List ToPoco(this List events)
扩展,它只在循环中调用BizObjects.Event Poco(this Event Event)
之后,您的查询将如下所示:
var events = (from e in _entities.Event.Include("RSVP")).ToList().ToPoco();
关于RSVP:
您通常只需为RSVP转换创建另一个扩展方法,如
列出ToPoco(此列表为RSVPs)
然后可以调用RSVPs=e.RSVPs.ToList().ToPoco()
直接适合您的代码的解决方案也可以是这样的:
RSVPs = e.RSVPs.Select(rsvp => new RSVP { //do mapping })
我尝试了您的上一个解决方案,但必须将.ToList添加到.Select。但是,我收到一个EntityFramework错误,说明它无法转换ToList()。我会在以后有机会的时候发布错误。你为我指明了正确的方向。谢谢签出此博客文章。
RSVPs = e.RSVPs.Select(rsvp => new RSVP { //do mapping })
var events = from e in _entities.Event.Include("RSVP")
select new BizObjects.Event
{
EventId = e.EventId,
Name = e.Name,
Location = e.Location,
Organizer = e.Organizer,
StartDate = e.StartDate,
EndDate = e.EndDate,
Description = e.Description,
CreatedBy = e.CreatedBy,
CreatedOn = e.CreatedOn,
ModifiedBy = e.ModifiedBy,
ModifiedOn = e.ModifiedOn,
RSVPs = from r in e.RSVP
select new BizObjects.RSVP
{
RSVPId = RSVPId,
// etc.
}
};