我是LINQ的新手。我有以下三个数据库表。LINQ。从第二张表中返回匹配记录。
class Districts{
public int id{get;set;}
public String DistrictName{get;set;}
}
class Users{
public int id{get;set;}
public String Username{get;set;}
//etc
}
而且连接表
class UserDistricts{
public int id{get;set;}
public int Userid{get;set;}
public int DistrictId{get;set;}
}
我想找到分配给它的用户ID标识的特定用户的DistrictNames。
List<int> districtsAssigned = (from aDistrict in p.UserDistricts where
aDistrict.UserId == userId select aDistrict.DistrictId).ToList();
上面的代码给了我一个特定用户的DistrictId。我希望它与地区表匹配并返回地区名称。我被困在这里。
等价的SQL查询会是这样的。
select U.DistrictId,D.DistrictName,userId from UserDistricts U
INNER JOIN Districts D on D.DistrictId=U.DistrictId
where [email protected]
任何帮助将不胜感激。
请尝试使用SO Linq的[Joins]文档(http:// stackoverfl ow.com/documentation/c%23/68/linq-queries/2994/joins-inner-left-right-cross-and-full-outer-joins#t=201704050730121811661) –
为什么你有这张桌子? UserDistricts?它与区和用户是多对多的关系吗?如果是这样的话,你不需要在UserDistricts中使用'public int id {get; set;}',只有左键和右键 – Valkyrie
也告诉我你在使用LINQ to SQL吗?或实体框架/ LINQ2Entities? – Valkyrie