0

IQueryable<Customer>いくつかのクエリ操作のために他のメソッドに戻ります。returnメソッドは次のようになります。

return from cust in _dbCustList
               select new Customer
               {
                   CustomerId = cust.Customer_Id,
                   FirstName= cust.First_Name,
                   LastName= cust.Last_Name,
                   DOB= cust.Date_Of_Birth,
                   LoginTime = cust.Login_Time ?? new TimeSpan(0, 0, 0);
               };

上記の結果では、cust.Login_Timeはnull許容プロパティです。

上記の結果をクエリしようとすると、エラーがスローされます。

Method 'System.TimeSpan GetTimeSpan(System.Nullable`1[System.TimeSpan])' has no supported translation to SQL.

このエラーを解決する方法は?

4

2 に答える 2

0

なぜヌルチェックを使用するのですか?

nullチェックを削除すると、記述されたクエリがSQLクエリに変換され、実行されます。これで、好きな魔法を実行できる結果が得られました...

于 2009-10-31T16:02:31.720 に答える
0

匿名型にクエリを実行し、その結果をメモリ内のビジネスオブジェクトにマップします。

var q = from cust in _dbCustList
        select new
        {
            cust.Customer_Id,
            cust.First_Name,
            cust.Last_Name,
            cust.Date_Of_Birth,
            cust.Login_Time
        };

return from cust in q.AsEnumerable()
       select new Customer
       {
           CustomerId = cust.Customer_Id,
           FirstName= cust.First_Name,
           LastName= cust.Last_Name,
           DOB= cust.Date_Of_Birth,
           LoginTime = cust.Login_Time ?? TimeSpan.Zero;
       };
于 2009-10-31T22:11:33.433 に答える