我正在尝试从导航属性中仅选择2列但无法执行此操作,任何人都可以告诉我如何实现此目的?
它的默认方式很好(选择所有列):
var productreceipts = db.productreceipts.Include(p => p.employee).Include(p => p.productmaster).Include(p => p.vendor);
我想要的是什么:
从employee,productmaster和供应商表中仅选择2列。
我知道如何选择是否只有一张表:
var productreceipt = db.productreceipts.Select(p => new { p.ReceiptId, p.ReceivedBy });
编辑: 我想选择第一个表(productreceipts)的所有属性,只选择其他几个属性。
非常感谢任何帮助。
提前致谢。
答案 0 :(得分:1)
试试这个:
var productreceipt = db.productreceipts
.Select(p =>
new { productreceipts_prop_1 = p.productreceipts_prop_1,
productreceipts_prop_2 = p.productreceipts_prop_2,
productreceipts_prop_3 = p.productreceipts_prop_3,
productreceipts_prop_4 = p.productreceipts_prop_4,
employee_prop_1 = p.employee.employee_prop_1,
employee_prop_2 = p.employee.employee_prop_2,
productmaster_prop_1 = p.productmaster.productmaster_prop_1,
productmaster_prop_2 = p.productmaster.productmaster_prop_2,
vendor_prop_1 = p.vendor.vendor_prop_1,
vendor_prop_1 = p.vendor.vendor_prop_1,
});
修改强>
无需使用.Include()
您可以直接使用navigator属性来检索数据。
答案 1 :(得分:0)
您可以使用:
background
答案 2 :(得分:0)
如果启用了延迟加载,则可以直接使用
.Select(p => new { ProductId = p.productmaster.ProductId }
否则你必须采用内连接并在单选中选择单个列。