0

我是亚音速框架的新手,我需要帮助。我有个问题,

我需要在 mvc 页面上提供搜索功能。我需要使用搜索字符串在两个不同的 sql 表中搜索文本,即使用 companyid 链接的公司和注册。

- 我正在尝试像在 linq 中一样查询

var searchString = "PM";

   var registrations = (from r in _repo.All<Registration>()
                             join c in _repo.All<Company>() on r.CompanyId equals c.CompanyId
                             where r.IsSubmitted == false && r.approvaldate ==null
                                 (c.CompanyName.Contains(searchString) || r.CompanyEmail.Contains(searchString))
                             select r);

并在 sql 查询中作为

select approvaldate,issubmitted,companyemail,* from registrations r 
where r.issubmitted='false' and r.approvaldate is null and (companyemail like '%pm%'
or companyid in (select companyid from companies where companyname like '%pm%')) 

我认为这是错误的,因为它没有得到预期的数据。

谁能帮助我使用 linq 或 sql 语句查询它以使用存储过程将不胜感激。谢谢

4

1 回答 1

0

您的 SQL 查询似乎包含子查询。但是您的 linq 查询有点不同。

我会这样做:

   var registrations = (from r in _repo.All<Registration>()
                        join c in _repo.All<Company>() on r.CompanyId equals c.CompanyId
                        select (x=> new{
                        IsSubmitted = r.IsSubmitted ,
                        approvaldate =r.approvaldate,
                        CompanyName=c.CompanyName,
                        CompanyEmail=c.CompanyEmail
}); 

registrations=registrations.Where(x=> IsSubmitted == false && approvaldate ==null &&(CompanyName.Contains(searchString) || CompanyEmail.Contains(searchString))

您也可以在选择列表中包含更多列以显示它。

希望这可以帮助。

于 2013-11-06T08:26:08.087 回答