首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ Select()函数抛出加载值(loadoptions)

LINQ Select()函数抛出加载值(loadoptions)
EN

Stack Overflow用户
提问于 2009-06-13 20:24:02
回答 2查看 622关注 0票数 0

我有一个模型,其中一个产品可以有多个PriceDrops。我正在尝试生成一个最近价格下降的产品列表。

加载产品后获得最新的降价信息非常简单,我认为这将是最好的开始方式:

代码语言:javascript
复制
dlo.LoadWith<PriceDrop>(pd => pd.Product);
db.LoadOptions = dlo;
return db.PriceDrops.OrderBy(d=>d.CreatedTime);

对于最近的降价列表非常有用,但我想要一个产品列表。如果我附加一个".Select(d=>d.Product)“,我将得到一个产品列表--这很完美--但它们不再与PriceDrops相关联。也就是说,如果我在产品上调用.HasLoadedOrAssignedValues,它将返回false。如果我试图询问Price Drops,它会试图返回到DB以获取它们。

有没有办法绕过这个问题,或者我必须从产品开始制作一个查询,而不使用Select修饰符?我试图避免这种情况,因为在某些情况下,我想要一个PriceDrops列表,并且我希望尽可能多地重用逻辑(为了清楚起见,我在上面的示例中省略了where子句和其他过滤器代码)。

谢谢,汤姆

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-13 20:39:03

尝试加载按最新PriceDrop排序的产品:

代码语言:javascript
复制
dlo.LoadWith<Product>(p => p.PriceDrops);
db.LoadOptions = dlo;
return db.Products.OrderBy(d => d.PriceDrops.Max(pd => pd.CreatedTime));

我从你的问题中了解到你在试图避免这种情况,为什么?

票数 1
EN

Stack Overflow用户

发布于 2009-06-13 20:58:16

我认为这里需要的是AssociateWith方法,也是在DataLoadOptions类上。

代码语言:javascript
复制
dlo.AssociateWith<Product>(p => p.PriceDrops.OrderBy(d=>d.CreatedTime))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/991453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档