0

Linq2Sql では、次のようなクエリを実行できました。

using (var db = GetDataContent())
            {
                var query = from p in db.Brands
                            where p.Deleted == false
                            select new BrandImageSummary
                            {
                                BrandID = p.BrandID,
                                BrandUrl = p.BrandUrl,
                                Description = p.Description,
                                MetaDescription = p.MetaDescription,
                                MetaKeywords = p.MetaKeywords,
                                MetaTitle = p.MetaTitle,
                                BrandImageUrl = (from p2 in db.SiteImages where p2.FileTypeID == 5 && p2.ForeignID == p.BrandID && p2.Deleted == false orderby p2.Rank select p2.Filename).FirstOrDefault(),
                                Deleted = p.Deleted,
                                SupplierCode = p.SupplierCode,
                                Title = p.Title,
                                Website = p.Website
                            };

                return query.ToList();
            }

ネストされた選択である BrandImageUrl を使用します。ただし、エンティティ フレームワークでは、次のエラーが発生するようです。

タイプ 'SiteImage' の定数値を作成できません。このコンテキストでは、プリミティブ型または列挙型のみがサポートされています。

エンティティフレームワークでこれを行う方法はありますか?

クエリのアイデアは、1 つのブランド イメージを取得することです。結合する場合、複数のイメージがあった場合、複数の行が取得されるため、これは望ましくありません。

Entity Framework 5 を使用しています。

ご協力いただきありがとうございます

4

1 に答える 1

1

モデル クラスで 1 対多の関係を作成する必要があります。

その後、書くことができます

BrandImageUrl = p.BrandImages
                 .Where(i => i.FileTypeID == 5 && !i.Deleted)
                 .OrderBy(i => i.Rank)
                 .Select(i => i.FileName)
                 .FirstOrDefault()
于 2012-08-22T13:32:36.037 に答える