0

私は2つのクラスSiteConfig、SiteConfigViewを持っています。1 つは私の EF と密接に結合されており、もう 1 つはそれを View モデルに公開するためのクラスです。どちらのクラスも「ブランド」タイプのコレクションを保持します

db からビュー モデルにレコードを取得するための linq クエリを作成することにしました。

別のクラスをビュー モデルに公開しているため、「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 に取得する方法を教えてください。

ありがとう

4

1 に答える 1

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();
于 2012-08-10T14:19:22.600 に答える