Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 函数的作用是:抛出加载的值(loadoptions)_C#_Linq_Linq To Sql - Fatal编程技术网

C# 函数的作用是:抛出加载的值(loadoptions)

C# 函数的作用是:抛出加载的值(loadoptions),c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我有一个模型,其中一个产品可以有多个价格下降。我正在尝试生成一个最近降价的产品列表 通过加载产品获得最近的价格下降是很容易的,我认为这将是最好的开始方式: dlo.LoadWith<PriceDrop>(pd => pd.Product); db.LoadOptions = dlo; return db.PriceDrops.OrderBy(d=>d.CreatedTime); dlo.LoadWith(pd=>pd.Product); db.LoadOptions=d

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

通过加载产品获得最近的价格下降是很容易的,我认为这将是最好的开始方式:

dlo.LoadWith<PriceDrop>(pd => pd.Product);
db.LoadOptions = dlo;
return db.PriceDrops.OrderBy(d=>d.CreatedTime);
dlo.LoadWith(pd=>pd.Product);
db.LoadOptions=dlo;
返回db.PriceDrops.OrderBy(d=>d.CreatedTime);
对于最近价格下跌的列表非常有用,但是我想要一个产品列表。如果我附加一个“.Select(d=>d.Product)”,我会得到一个产品列表——这很完美——但它们不再与价格下降相关联。也就是说,如果我在产品上调用.hasloadeOrassignedValues,它将返回false。如果我试图询问价格下降的情况,它会试图为他们返回DB

有没有办法解决这个问题,或者我必须创建一个以Products开头的查询,而不使用Select修饰符?我试图避免这种情况,因为在某些情况下,我需要一个价格下降列表,并且我希望尽可能多地重用逻辑(为了清晰起见,我省略了上面示例中的where子句和其他过滤代码)

谢谢,
Tom

尝试加载按最新降价订购的产品:

dlo.LoadWith<Product>(p => p.PriceDrops);
db.LoadOptions = dlo;
return db.Products.OrderBy(d => d.PriceDrops.Max(pd => pd.CreatedTime));
dlo.LoadWith(p=>p.PriceDrops);
db.LoadOptions=dlo;
返回db.Products.OrderBy(d=>d.PriceDrops.Max(pd=>pd.CreatedTime));

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

我认为您需要的是方法,也是DataLoadOptions类上的方法

dlo.AssociateWith<Product>(p => p.PriceDrops.OrderBy(d=>d.CreatedTime))
dlo.AssociateWith(p=>p.PriceDrops.OrderBy(d=>d.CreatedTime))

谢谢,我就这么做。我试图避免它,因为我想在查询PriceDrops时重复使用与查询产品时相同的过滤逻辑(多个where子句)。为了清晰起见,我省略了这些子句。我认为您仍然可以传递表示过滤逻辑的共享表达式实例,并在正确的位置使用它们。