1

こんにちは: devArt の Oracle Connect を使用して、Entity Framework 4.1 POCO と Oracle を操作しています。

Oracle の列タイプが Char (固定長) である特定のクエリで問題が発生しました。生成された SQL クエリで使用されるパラメーターが、Char ではなく VarChar としてフォーマットされているため、クエリでゼロ行が返されます。EntityFramework/DevArt にパラメーターを強制的に埋め込む方法はありますか?

問題の例を次に示します (ユーザー名のクエリ)。このコードは行を返すはずですが、そうではありません。


string aUserName = "Test";
var query = from u in users
            where u.UserName == aUserName
            select u;

コードの最初の行を次のように変更すると:

string aUserName = "Test".PadRight(20);

その後、機能します(Oracle列はChar(20)です)。パディングを行う必要はありません (SQL Server では必要ありません)。私ができる構成変更はありますか? 接続文字列スイッチ?POCO の属性?

4

2 に答える 2

2

2つのオプションがあります
。1。行ったことを実行し、ユーザー名の文字列変数を右に埋め込みます。
2.空の文字を削除します-ユーザー名フィールドを右にトリミングします。

その他のオプション:

string aUserName = "Test";
var query = users.select(x => string.Join(string.Empty, x.UserName).TrimEnd()).
                  where(x => x==aUserName)

(これにより、ユーザーオブジェクト全体ではなく、ユーザー名が返されます)

お役に立てれば。

于 2011-05-04T03:49:22.930 に答える
1

私たちはフォーラムであなたに返信しました。
提供されたソリューションで問題が発生した場合は、お知らせください。

于 2011-05-10T12:25:25.427 に答える