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”类型的常量值。此上下文仅支持原始类型或枚举类型。

有没有办法在实体框架中做到这一点?

查询的想法是获得一个品牌形象,如果我要加入,并且有多个图像,我会得到多行,我不想要这个。

我正在使用实体框架 5。

谢谢你的帮助

4

1 回答 1

1

You should create a one-to-many relation in your model classes.

You can then write

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 回答