【发布时间】:2017-03-02 21:56:44
【问题描述】:
三个表:
地理数据: 身份证
地址: ID、GeoDataID、用户ID
产品: ID、用户ID
GeoData.ID 和 Address.GeoDataID 之间存在一对一关系,Address.UserID 和 Products.UserID 之间存在一对多关系
我有一个 GeoData ID 数组作为输入,我想获取所有相关产品。
如果我只有一个 GeoData ID,我会尝试类似:
int geoDataID = 3456;
using (var context = new BaseContext())
{
from p in context.Products
join a in context.Addresses on p.UserID equals a.UserID
join g in context.GeoData on a.GeoDataID equals g.ID
where g.ID == geoDataID
select new { p };
}
但由于我有一个数组 (int[] geoData) 作为输入,我无法将它放在一起。
【问题讨论】:
-
如果
geoDataID是int[],那么where geoDataID.contains(g.ID) -
对不起,我不明白您的评论:这应该是获得预期结果的解决方法吗?
-
不清楚你在问什么,但如果
geoDataID说int[] geoDataID = new int[]{ 1, 2, 3 }然后用我第一条评论中的代码替换where g.ID == geoDataID -
虽然我不明白为什么你需要加入
GeoData,而你可以使用Address的GeoDataID
标签: asp.net-mvc linq foreach