0

我有一个搜索功能,可以查找客户姓名、邮政编码、电话号码。我还想要查找连接表 CustomerContact 以搜索名字和姓氏的功能。

我有以下内容:

var customer = from c in db.Customer.Include(c => c.CustomerContact)
                select c;


if (!String.IsNullOrEmpty(searchString))
{
    customer = customer.Where(c => c.CustomerName.ToUpper().Contains(searchString.ToUpper())
                        || c.Postcode.ToUpper().Contains(searchString.ToUpper())
                        || c.CustomerContact.FirstName.ToUpper().Contains(searchString.ToUpper())
                        || c.CustomerContact.Surname.ToUpper().Contains(searchString.ToUpper())
                        || c.Telephone.ToUpper().Contains(searchString.ToUpper()));
}

我没有收到任何错误。当我搜索名字和姓氏时,它只是没有返回任何结果。

4

2 回答 2

0

客户 = customer.Include("CustomerContact").Where(...

于 2012-11-16T12:10:39.933 回答
0

在做其他事情时遇到了这个问题的答案。

这是我的最终代码。希望它对某人有用。

var customer = from c in db.Customer
               select c;

if (!String.IsNullOrEmpty(searchString))
{
    customer = customer.Where(c => SqlFunctions.StringConvert((double)c.CustomerID).Trim().Equals(searchString)
                        || c.CustomerName.ToUpper().Contains(searchString.ToUpper())
                        || c.Postcode.ToUpper().Replace(" ", "").Equals(searchString.ToUpper().Replace(" ", ""))
                        || c.Telephone.ToUpper().Replace(" ", "").Equals(searchString.ToUpper().Replace(" ", ""))
                        || c.CustomerContact.Where(x => x.FirstName.ToUpper().Contains(searchString.ToUpper())).Any()
                        || c.CustomerContact.Where(x => x.Surname.ToUpper().Contains(searchString.ToUpper())).Any()
                        || c.CustomerContact.Where(x => (x.FirstName.ToUpper() + " " + x.Surname.ToUpper()).Contains(searchString.ToUpper())).Any());
        }
于 2013-10-23T11:21:00.380 回答