我有这个表达式,它生成对数据库的单个查询:
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 Profiler)。
有没有办法隔离映射(Select 语句)以实现更好的代码可读性?