LINQ to SQL 查询的问题
本文关键字:问题 查询 SQL to LINQ | 更新日期: 2023-09-27 18:33:34
我在使我的一个 LINQ to SQL 查询正常工作时遇到问题。 我有三个表设置如下:
供应商id - 主键
厂家id - 主键
制造商供应商关系id - 主键manufacturer_id - manufacturer.id 的外键vendor_id - vendor.id 的外键
我正在尝试编写一个 LINQ to SQL 查询,该查询将获取当前与给定制造商无关的供应商。 例如,下表数据应仅导致制造商的 2 个供应商的 ID 为 1。 有人可以帮我使用此示例的 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
也许是这样的:
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 数据上下文
int id= 1;
var result =
dc.Vendors
.Where(v => !dc.ManufacturerVendorRelationships
.Any(rel => rel.VendorId == v.Id && rel.ManufacturerId == id));