我有这个模型,有三个相同模型的集合<AttendeesMeeting>
会议
[NotMapped]
[Display(Name = "xxxx", ResourceType = typeof(Resources.ReuniaoResources))]
public virtual ICollection<AttendeesMeeting> Required{ get; set; }
[NotMapped]
[Display(Name = "xxx", ResourceType = typeof(Resources.ReuniaoResources))]
public virtual ICollection<AttendeesMeeting> Informed{ get; set; }
[NotMapped]
[Display(Name = "xxxx", ResourceType = typeof(Resources.ReuniaoResources))]
public virtual ICollection<AttendeesMeeting> Optionals{ get; set; }
在方法中,可以获取一些值。
我希望我的三个模型对象只从返回的值中接收“登录”。
public Meeting GetReuniaoForEdit(int id)
{
var model = this.context.Meetings.Find(id);
var required = context.AttendeesMeeting.Where(x => x.IdReuniao == id && x.TypeAttendee == 1);
var informed = context.AttendeesMeeting.Where(x => x.IdReuniao == id && x.TypeAttendee == 2);
var optionals = context.AttendeesMeeting.Where(x => x.IdReuniao == id && x.TypeAttendee == 3);
if (required.Any() || informed.Any() || optionals.Any())
{
//Login is a string
model.required = required.Select(x => x.Login).ToList();
}
}
错误:
model.required = required.Select(x => x.Login).ToList();
无法隐式转换类型 '
System.Collections.Generic.List<string>
'到 'System.Collections.Generic.ICollection<Models.AttendeesMeeting>
'。一个 存在显式转换(您是否错过了演员?)
如何在模型集合中打开字符串列表?
有可能吗?
答案 0 :(得分:1)
现在,通过.Select(x => x.Login).ToList()
,您可以创建要分配给ICollection<AttendeesMeeting>
的字符串列表。您可以通过多种方式解决此问题,例如:
ICollection<AttendeesMeeting>
替换为ICollection<string>
。如果您只需要Login
,那么您的模型应该针对此进行优化。 .Select(x => x.Login)
,然后将会议集合分配给模型中的属性;在您的视图中,仅显示模型的Login
属性,并省略其余数据。ICollection<string>
添加到新模型中,并在特殊情况下使用此属性。 答案 1 :(得分:0)
我想你想要的是通过他们的login
开会。因此,您需要进一步的步骤,因为required.Select(x => x.Login).ToList()
只会选择会议的登录信息。但是,您需要进一步选择所有符合这些ID的会议:
var model = this.context.Meetings.Where(x => required.Select(y => y.Login).Contains(x.login));