我无法让我的一个LINQ to SQL查询正常工作。我有三个表设置如下:
供应商 id - 主键
制造商 id - 主键
ManufacturerVendorRelationships id - 主键 manufacturer_id - manufacturer.id的外键 vendor_id - vendor.id的外键
我正在尝试编写一个LINQ to SQL查询,该查询将获取当前与给定制造商无关的供应商。例如,下表数据应该只为ID为1的制造商提供2个供应商。在此示例中,有人可以帮我使用LINQ to SQL吗?现在,应用程序正在执行此逻辑。提前谢谢。
Vendors
ID
1
2
3
4
5
Manufacturers
ID
1
2
3
4
5
ManufacturerVendorRelationships
ID ManufacturerID VendorID
1 1 1
2 1 2
3 1 3
答案 0 :(得分:1)
也许是这样的:
var result=(
from v in db.Vendors
where !db.ManufacturerVendorRelationships
.Select(s=>s.VendorID)
.Contains(v.ID)
select v
);
或者如果你想要它像一个字段:
var result=(
from v in db.Vendors
select new
{
v.ID,
HasManufacturer=db.ManufacturerVendorRelationships
.Select(s=>s.VendorID)
.Contains(v.ID)
}
);
其中db是linq数据上下文
答案 1 :(得分:0)
int id= 1;
var result =
dc.Vendors
.Where(v => !dc.ManufacturerVendorRelationships
.Any(rel => rel.VendorId == v.Id && rel.ManufacturerId == id));