bug*_*ixr 3 c# asp.net entity-framework
我正在使用Linq to Entities.我有一个主表,Employee设置有一个名为vendorID的字段.供应商ID是Vendors表中的外键.
就像现在一样,Employee对象不直接公开vendorID.相反,我只能这样访问它:
var employee = (from e in context.Employees.Include("tbl_vendors")
where e.employeeID = 1
select e).FirstOrDefault();
//this gets the vendor ID
int vendorID = employee.tbl_vendors.vendorID;
Run Code Online (Sandbox Code Playgroud)
这很好,花花公子,但它是数据库的额外工作,因为它强制连接不需要任何东西.有没有办法获得该键值而不必强制连接到tbl_vendors表?
实际上这很简单你基本上这样做:
var tblVendorID = (from e in context.Employees
select e.tbl_vendors.ID).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
即使看起来你正在进行连接,L2E也会优化连接.
您可以使用以下代码进行确认:
var results = from e in ctx.Employees
select e.tbl_vendors.ID;
var query = results as ObjectQuery<int>;
string sql = query.ToTraceString();
Run Code Online (Sandbox Code Playgroud)
希望这有助于Alex(微软).
| 归档时间: |
|
| 查看次数: |
3350 次 |
| 最近记录: |