查询中的可选 Where 子句



我有一个应用程序,它搜索我们的数据库(通过 EF 公开)以查找满足某些条件的记录。我们有两个主表("作业"和"收件人")。收件人通过作业 ID 链接到"作业"表。

作业

记录具有各种字段(处理日期、名称、作业类型)。收件人有很多姓名和ID字段(例如帐号,姓氏等)

我想呈现一个搜索屏幕,他们在其中看到要搜索的字段列表。然后,ASP.net 代码查看用户键入(或选择)的文本框,并基于该文本框生成查询。

我只是想找到最有效的方法。

粗略的逻辑是:

    if not string.isnullorempty(txtName.text) then
        'Query.Where.Add clause = " AND Name like '@txtName'
        'Query.WhereParameters.Add("@txtName",txtNAme.text
    end if
if not string.isnullorempty(txtAccountNumber.text) then 
.....etc

 if not string.isnullorempty(txtFromDate.text) then..

我陷入困境的地方是弄清楚如何添加额外的 where 子句。我应该只使用实体 SQL 吗?

这是否也可以返回强类型的 EF 对象?是否可以同时返回作业和收件人对象?

例如,如果我做了一个选择的收件人。工作。从。。。。等等,这会正确解析并返回链接的收件人和作业对象吗?

如果从强类型未筛选查询开始,则可以使用 Queryable.Where 添加筛选器。

Name = txtName.Text
If Not String.IsNullOrEmpty(Name) Then
    Query = Query.Where(Function(j) j.Name.Contains(Name))
End If

如果未筛选的查询正确链接了多个记录,则在添加筛选器时将保留这些链接。

(免责声明:我通常不使用 VB.NET;可能存在愚蠢的语法错误,但您应该能够了解大致的想法。

相关内容

  • 没有找到相关文章

最新更新