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 に答える