私はEntity Frameworkが初めてで、そのためのORMがあります。私が関与しているプロジェクトには、すべてのキーが文字列であり、大文字と小文字が区別されないレガシー データベースがあります。
MSSQL に変換中で、EF を ORM として使用したいのですが、問題が発生しました。
以下は、私たちの問題を示す例です。
TableA にはプライマリ文字列キーがあり、TableB にはこのプライマリ キーへの参照があります。
LINQ では、次のように記述します。
var result = from t in context.TableB select t.TableA;
foreach( var r in result )
Console.WriteLine( r.someFieldInTableA );
TableA に "A" を読み取る主キーが含まれており、TableB に TableA を参照する 2 つの行が含まれているが、参照フィールドの大文字と小文字が異なる "a" と "A" の場合。
私たちのプロジェクトでは、両方の行が結果に含まれるようにしたいのですが、大文字と小文字が一致する行のみが結果に含まれます。
SQL プロファイラーを使用して、両方の行が選択されていることに気付きました。
キーが大文字と小文字を区別しないことを Entity Framework に伝える方法はありますか?
編集:
これを NHibernate でテストしたところ、NHibernate は大文字と小文字を区別しないキーで動作するという結論に達しました。したがって、NHibernate の方が適している可能性があります。
ただし、Entity Framework の動作を変更する方法があるかどうかを知りたいと思っています。
ご回答有難うございます!
問題は、その制約を今データベースに追加すると、その構築方法が原因でレガシー アプリケーションが動作しなくなる可能性があることです。可能であれば、EF の動作を変更することをお勧めします。無理だとは思いますが、頑張ってみます。
よろしく、
フレドリック
編集:自分の質問に回答を追加した理由は、登録ユーザーになる前にこの質問を追加したためです。アカウントを登録すると、コメントを追加したり、投稿を編集したりできませんでした。これでアカウントが統合されました。