我正在尝试使用EF加入3个表,但它会抛出一个错误说
consider swaping conditions on either side of equals
Run Code Online (Sandbox Code Playgroud)
可以请一些人帮忙
var billdata = from billtotal in context.billTotals
join billcard in context.billClubcards
on billtotal.OrderID equals billcard.OrderID
join billtender in context.billTenders
on billtender.OrderID equals billtotal.OrderID
select billtotal;
Run Code Online (Sandbox Code Playgroud)
Iai*_*way 13
编译错误非常正确: -
The name 'billtender' is not in scope on the left side of 'equals'. Consider swapping the expressions on either side of 'equals'.
您要加入的表格需要在左侧,您加入的表格需要在右侧.因此: -
var billData =
from billtotal in context.billTotals
join billcard in context.billClubcards
on billtotal.OrderId equals billcard.OrderId
join billtender in context.billTenders
on billtotal.OrderId equals billtender.OrderId
select billtotal;
Run Code Online (Sandbox Code Playgroud)
如果您想知道原因,那是因为查询语法只是底层扩展方法的语法糖: -
context.billTotals
.Join(
context.billClubcards,
billtotal => billtotal.OrderId,
billclubcard => billclubcard.OrderId,
(billtotal, billclubcard) => billtotal)
.Join(
context.billTenders,
billtotal => billtotal.OrderId,
billtender => billtender.OrderId,
(billtotal, billtender) => billtotal);
Run Code Online (Sandbox Code Playgroud)
您的原始实施将扩展为: -
context.billTotals
.Join(
context.billClubcards,
billtotal => billtotal.OrderId,
billclubcard => billclubcard.OrderId,
(billtotal, billclubcard) => billtotal)
.Join(
context.billTenders,
billtotal => billtender.OrderId, // billtender isn't in scope!
billtender => billtotal.OrderId, // billtotal isn't in scope!
(billtotal, billtender) => billtotal);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23389 次 |
最近记录: |