无法隐式转换类型';System.Collections.Generic.IEnumerable<;字符串&g
本文关键字:Generic Collections IEnumerable 字符串 lt System 转换 类型 | 更新日期: 2023-09-27 18:22:10
我有这个型号,有三个相同型号的集合<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; }
在方法中执行get以检索一些值。
我希望我的三个模型对象只接收返回值中的"Login"。
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>
"。一显式转换存在(是否缺少强制转换?)
如何打开模型集合中的字符串列表?
有可能吗?
现在,通过.Select(x => x.Login).ToList()
可以创建一个要分配给ICollection<AttendeesMeeting>
的字符串列表。你可以用几种方法来解决这个问题,例如:
- 您可以更改模型,以便用
ICollection<string>
替换ICollection<AttendeesMeeting>
。如果您曾经只需要Login
,那么您的模型应该为此进行优化 - 您可以省略
.Select(x => x.Login)
,然后将会议集合分配给模型中的属性;在您的视图中,只显示模型的Login
属性,而忽略其余数据 - 如果您无法更改现有模型,我建议创建一个新的模型类,该类可以准确存储特殊情况下所需的数据。在这种情况下,您可以将属性作为
ICollection<string>
添加到新模型中,并在特殊情况下使用它
我想你想要的是通过他们的login
获得会议。因此,您需要进一步的步骤,因为required.Select(x => x.Login).ToList()
只会选择您会议的登录名。然而,您需要进一步选择符合这些ID的所有会议:
var model = this.context.Meetings.Where(x => required.Select(y => y.Login).Contains(x.login));