linq to sql LoadWith返回限制字段

dan*_*ifo 5 c# linq

有没有办法使用LoadWith但指定返回的字段?

例如,如果我有两个表1)产品2)类别

并做一些类似的事情

DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Products>(d => d.Categories);
db.LoadOptions = dlo;

MyDataContext db = new MyDataContext();
var result = from d in db.Products
             select d;
Run Code Online (Sandbox Code Playgroud)

当我在profiler中检查查询时,我看到正在返回Categories表中的所有行.我真正需要的只是"名称"字段.

我知道我可以使用连接重写查询,但我需要将结果集作为"Product"数据类型返回,这就是我使用LoadWith的原因.

Fra*_*uma 1

不,这对于 LoadWith 来说是不可能的。

您可以尝试在投影中使用嵌套查询,尽管这会很慢:每个父项 1 个查询(因此每个加载的产品对相关类别有 1 个查询)。