我有这样的表达,生成一个查询到数据库:LINQ到SQL:优化兰巴表达 - 干净的代码
db = new MyDataContext();
var productInCity = db.Products
.Where(n => n.id == 2)
.Select(k => new ProductInCityDto()
{
ProductName = k.ProductName,
CityName = k.Store.City.Name,
CountryName = k.Store.City.Country.Name
.
.
.
})
.FirstOrDefault();
我想使代码更清洁,通过将映射功能,扩展方法或对象的构造函数,像这样:
db = new MyDataContext();
var productInCity = db.Products
.Where(n => n.id == 2)
.Select(k => new ProductInCityDto(k))
.FirstOrDefault();
但是,在这种情况下,会产生多个查询数据库(我使用LinqToSql探查)。
有没有办法隔离映射(Select语句)以获得更好的代码可读性?
您的DataContext是否使用LazyLoading? – Carsten 2013-02-22 09:26:56