私はEF4.0を使用して、非常に基本的なクエリを実行しています。テーブル内のすべての列参照がInt(bigintもsmallintも使用しない)であることを確認したので、それを除外しました。タイプをInt64に変更しようとしましたが、Int32へのキャストについて文句を言います。これは、「問題は問題ではない」タイプのシナリオであると私に信じさせます。EFシステムは何について不平を言っていますか?
public class clsResult
{
public Int32 PkId { get; set; }
public Int32 FkId { get; set; }
public Int32 Threshold { get; set; }
}
var qry = db.ExecuteStoreQuery<clsResult>(@"SELECT PkId, FkId, Threshold
FROM (SELECT ROW_NUMBER() OVER (PARTITION BY FkId ORDER BY PkId ASC) AS Threshold, *
FROM ClientTrans
) AS T1
WHERE (Threshold <= 3)
AND (ClientID IN ( SELECT Id
FROM ClientProfile
WHERE (p.Login LIKE 'WEBS%')))
AND (DateRpt >= @STARTDATE)
AND (DateRpt <= @ENDDATE)", SqlParams).ToList();
生成されたエラー:マテリアライズされた「System.Int64」タイプから「System.Int32」タイプへの指定されたキャストは無効です。