我想知道如何使用Linq To SQl Lambda表达式从表中获取数据子集......
假设我有一个表tbl_Product,包含字段ProductId,ProductCode,ProductName,Description,WhyBuyCopy,如果不需要其他字段,我如何才获得前三个字段,因为检索所有数据的时间要长一些(使用'设置统计时间')?
一个解决方案可能是创建一个扩展由linq2sql创建的部分类,只需要所需的字段,但我试图避免......
其他解决方案当然是使用
from p in base.dc.E_Products
select new E_Product
{
ProductId = p.ProductId,
ProductCode = p.ProductCode,
etc
})
但我很想知道上面的代码是否有一个等效的lambda表达式。
谢谢
答案 0 :(得分:1)
您提出的第二个解决方案不适用于LINQ to SQL,因为它不允许您在LINQ查询中创建新的LINQ to SQL实体,因为此实体不会有更改跟踪。
您最好的选择是使用匿名类型(如果可能)或仅使用这两个字段创建Data Transfer Object(DTO):
public class ProductDto
{
public ProductId { get; set; }
public ProductCode { get; set; }
}
from p in base.dc.E_Products
select new ProductDto()
{
ProductId = p.ProductId,
ProductCode = p.ProductCode,
});