我在asp.net mvc wen应用程序中定义了以下模型类:-
public class CustomerDetails
{
public AccountDefinition AccountDefinition {get; set;}
public SDOrganization SDOrganization {get; set;}
public ICollection<SiteDefinition> SiteDefinition { get; set; }
public ICollection<AaaPostalAddress> AaaPostalAddress { get; set; }
public ICollection<AaaContactInfo> AaaContactInfo { get; set; }
public virtual ICollection<UserSiteMapping> UserSiteMapping { get; set; }
}
然后我写下面的查询:
var customerDetails = entities.AccountDefinitions
.Where(a => a.ORG_ID == id)
.Select(cd => new CustomerDetails
{
AccountDefinition = cd,
SDOrganization = cd.SDOrganization,
AaaPostalAddress = cd.SDOrganization.AaaPostalAddresses,
AaaContactInfo = cd.SDOrganization.AaaContactInfoes,
SiteDefinition = cd.SiteDefinitions,
UserSiteMapping = cd.SiteDefinitions.Select(p2 => p2.UserSiteMappings) //this is raising the exception
})
.SingleOrDefault();
return customerDetails;
但我得到以下误导性错误:
无法将类型'System.Collections.Generic.IEnumerable>'隐式转换为'System.Collections.Generic.ICollection'。存在显式转换(您是否缺少演员表?)
我不知道是什么导致了错误,因为我选择了UserSiteMapping
与SiteDefinition相关的内容,并且将它们分配给UserSiteMapping的集合(在我的视图模型中定义)???
使用SelectMany
来代替:
UserSiteMapping = cd.SiteDefinitions.SelectMany(p2 => p2.UserSiteMappings)
您可能还需要ToList()
或ToArray()
致电以从切换IEnumerable<T>
到ICollection<T>
:
UserSiteMapping = cd.SiteDefinitions.SelectMany(p2 => p2.UserSiteMappings).ToList()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句