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

LINQ to SQL 查询的问题

也许是这样的:

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));