Linq To SQL:我是否只能在连接表中加载一个字段?

Edu*_*eni 1 .net sql performance linq-to-sql

我有一个表"订单"与foreing键"ProductID".

我希望在网格中显示带有产品名称的订单,而不使用LazyLoad以获得更好的性能,但是如果使用DataLoadOptions,它会检索所有产品字段,这些字段就像过度杀伤一样.

有没有办法在第一个查询中检索产品名称?我可以在DBML中设置一些属性吗?

在这个表中说Linq To SQL中的"外键值"是"可见的",但不知道这意味着什么.

编辑:更改了标题,因为我不确定没有解决方案.
不敢相信没有人有同样的问题,这是一个非常常见的情况.

lia*_*nan 5

你要求的是linq-to-sql没有提供的优化级别.我认为你最好的办法是创建一个完全返回所需数据的查询,可能是一个匿名类型:

from order in DB.GetTable<Orders>()
join product in DB.GetTable<Products>()
on order.ProductID = product.ID
select new { ID = order.ID, Name = order.Name, ProductName = product.Name };
Run Code Online (Sandbox Code Playgroud)