C# 将LINQ中的查询追加到SQL

C# 将LINQ中的查询追加到SQL,c#,linq,linq-to-sql,many-to-many,C#,Linq,Linq To Sql,Many To Many,我试图基于参数的存在来构建l2s查询。我可以为我的对象的直接属性实现这一点,但是当其中一个属性是多->多实体时,我无法理解它 例如,我的用户表有一个名称列。 还有一个品牌表,一个用户可能有多个品牌存储在brand_users表中 我想在我的查询中附加一个条件,只查询brand_users表中具有特定brandid项的用户 GetUser(UserSearchParameter searchParam) { var query = from u in Users select u;

我试图基于参数的存在来构建l2s查询。我可以为我的对象的直接属性实现这一点,但是当其中一个属性是多->多实体时,我无法理解它

例如,我的用户表有一个名称列。
还有一个品牌表,一个用户可能有多个品牌存储在brand_users表中

我想在我的查询中附加一个条件,只查询brand_users表中具有特定brandid项的用户

GetUser(UserSearchParameter searchParam)
{
    var query = from u in Users select u;

    if(searchParam.Name != null)
        query = query.Where(u => u.Name.Contains(searchParam.Status)); // this works!!

    if(searchParam.BrandId != null)
        query = query.Where??? // this is where I'm stuck

    return new List<user>(query);
}
GetUser(UserSearchParameter searchParam)
{
var query=从用户选择的u中选择u;
if(searchParam.Name!=null)
query=query.Where(u=>u.Name.Contains(searchParam.Status));//这很有效!!
if(searchParam.BrandId!=null)
query=query.Where???//这就是我被卡住的地方
返回新列表(查询);
}
那么:

query = query.Where(u => Brands.Any(brand => brand.UserId == u.UserId &&
                                          brand.BrandId == searchparam.brandId));
但是,如果不知道brands表的结构,或者不知道它在LINQ to SQL中是如何表示的,就很难给出更多的细节

query = query.Where(u => u.Brand_Users.Any());

假设您已经在L2S关系中映射了品牌用户多->多表,名称如上。

太好了!这就差不多做到了。我没有指定“品牌”,而是指定了“品牌用户”@SharePoint Newbie-yes,这不是第一次:`(