0

我有以下问题。我从数据库中检索具有指定值的业务。该字段businessno是整数类型。以下是代码

ObjectQuery<BUSINESS> q_business =
                     _context.BUSINESS.Include("CUSTOMSOFFICE").Where(
                     "it.BUSINESSNO=" + int.Parse(pv_businessno)).Where(
                     string.Format("(it.BUSINESSSTART >= DATETIME'{0:yyyy-MM-dd HH:mm}') 
                     and (it.BUSINESSSTART <= DATETIME'{1:yyyy-MM-dd HH:mm}')",
                     pv_sdate, pv_edate)); 

然而,用户需要给出一个值并从数据库中检索businessno类似该值的数据。

我在互联网上搜索,最后重写代码如下。除非提供了 的完整值,否则此代码不会检索任何记录businessno

ObjectQuery<BUSINESS> q_business = 
                      _context.BUSINESS.Where(
                      "CAST(it.BUSINESSNO as System.String) like @abc", new ObjectParameter("abc", busno)).Where(
                      string.Format("(it.BUSINESSSTART >= DATETIME'{0:yyyy-MM-dd HH:mm}') 
                      and (it.BUSINESSSTART <= DATETIME'{1:yyyy-MM-dd HH:mm}')",
                      pv_sdate, pv_edate));

我的问题是如何将数字转换为字符串。

4

1 回答 1

0

使用SqlFunctions.StringConvert方法在服务器端将整数转换为字符串。

ObjectQuery<BUSINESS> q_business = 
      from b in _context.BUSINESS
      where SqlFunctions.StringConvert((double)b.BUSINESSNO).Contains(busno) &&
            b.BUSINESSSTART >= pv_sdate &&
            b.BUSINESSSTART <= pv_edate
      select b;
于 2013-02-05T08:47:16.563 回答