.net - 使用LINQ to SQL的关系表上的动态Where子句

标签 .net linq linq-to-sql dynamic where-clause

我需要有关LinqToSql中关系表(一对多)上的动态where子句的帮助。

用户从页面选择条件。 (用户选择条款有4个输入)

例如,Customer表中的CompanyName和CompanyTitle以及Order表中的OrderDate和ShipCity。

但是用户可以从页面界面中选择一个或多个,然后在代码隐藏处生成动态查询,然后选择From LinqToSql。

您可以在另一个网页上提供类似类型的示例。

最佳答案

您是否正在寻找类似的东西,在哪里定义“基本”查询,然后评估参数以确定where子句是否合适?

var result = (from x in context.X
              select x);

if(some condition)
{
    result = result.AsQueryable().Where(x => x.companyName == name);
}
if(some other condition)
{
    result = result.AsQueryable().Where(x => x.companyTitle == title);
}

//return result.ToList();
//return result.FirstOrDefault();
//return result.Count(); //etc

我在您的一条评论中注意到您提到您的表没有外键联接吗?我不确定在没有某种参照完整性或关联性的情况下如何获得一对多关系?

关于.net - 使用LINQ to SQL的关系表上的动态Where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/697345/

相关文章:

c# - 要列出的字符串。它的工作方式不同吗?

c# - 如果给定目录包含 ".exe",我将尝试返回 True 或 false

c# - 使 DefaultIfEmpty 返回 null

c# - LINQ 合并一个集合

c# - LINQ 查询中多列的总和

c# - LINQ to SQL context.GetChanges

c# - LINQ 平均时间跨度?

c# - 使用字符串作为 IEnumerable

c# - 反序列化使得字段是一个空列表而不是 null

c# - IPostbackEventHandler VS IPostbackDataHandler