我有2个类SiteConfig,SiteConfigView。一个与我的EF和一个类紧密耦合,以将其暴露给View模型。这两个类都包含“品牌”类型的集合
我编写了一个linq查询来从db获取记录以查看模型。
当我向视图模型公开不同的类时,我必须获取“SiteConfigView”类型的记录。所以我正在写一个linq查询,但我有点困惑如何从SiteConfig到SiteConfigView获取集合。
有我的课程
public partial class SiteConfig
{
public SiteConfig()
{
this.SiteBrands = new HashSet<SiteBrand>();
}
public int IdSiteConfig { get; set; }
public string Name { get; set; }
public byte[] SiteLogo { get; set; }
public string Brands { get; set; }
public string LinkColour { get; set; }
public virtual ICollection<SiteBrand> SiteBrands { get; set; }
}
public class SiteConfigView
{
public SiteConfigView()
{
}
public int IdSiteConfig { get; set; }
public string Name { get; set; }
public byte[] SiteLogo { get; set; }
public string Brands { get; set; }
public string LinkColour { get; set; }
public IEnumerable<SiteBrandView> SiteBrands { get; set; }
}
这是我正在尝试的查询
var db = new SampleMVCEntities();
IQueryable<SiteConfig> test = db.SiteConfigs.Select(a => new SiteConfigView{Name = a.Name,LinkColour = a.LinkColour,SiteLogo = a.SiteLogo});
可以来指导我如何从SiteConfig到SiteConfigView获取集合。
由于
答案 0 :(得分:2)
你正朝着正确的方向努力尝试
var siteConfigs = db.SiteConfigs.AsEnumerable().Select(a => new SiteConfigView()
{
Name = a.Name,
LinkColour = a.LinkColour,
SiteLogo = a.SiteLogo,
SiteBrands = a.SiteBrands.AsEnumerable().Select(a => new SiteBrandView()
{
//Do the projection
}).ToList()
}).ToList();