1
如何在EF中执行以下连接? 表彼此没有关系,没有外键。交叉加入实体框架Lambda表达式
Select t1.ID, t1.firstname, t2.ID,t2.name from MY_TEST_TABLE1 t1, MY_TEST_TABLE2 t2
where t1.firstname = t2.name
如何在EF中执行以下连接? 表彼此没有关系,没有外键。交叉加入实体框架Lambda表达式
Select t1.ID, t1.firstname, t2.ID,t2.name from MY_TEST_TABLE1 t1, MY_TEST_TABLE2 t2
where t1.firstname = t2.name
你可以这样做:
var query= from t1 in context.MY_TEST_TABLE1
from t2 in context.MY_TEST_TABLE2
where t1.firstname == t2.name
select new { Table1Id= t1.ID, FirstName= t1.firstname, Table2Id=t2.ID,Name= t2.name};
另一种方法Linq中的一个交叉连接到实体使用SelectMany扩展方法:
var query= context.MY_TEST_TABLE1.SelectMany(t1=>context.MY_TEST_TABLE2
.Where(t2=>t1.firstname == t2.name)
.Select(t2=>new {
Table1Id= t1.ID,
FirstName= t1.firstname,
Table2Id=t2.ID,
Name= t2.name
}
)
);
也许是这样的:
var results = from t1 in dbcontext.my_test_table1s
join t2 in dbcontext.my_test_table2s on t1.firstname equals t2.name
select new
{
t1id = t1.Id,
firstname = t1.firstname,
t2id = t2.id,
name = t2.name
};
该查询不有一个“外连接”... – sgeddes