私は、結合された列の1つがNULL可能ですが、しばしば2つの行の間で唯一の識別項目となるビューを持っています。私は、EFがビュー内のnullableではないすべての項目から主キーを作成したことを確認します。私は、ビューから引き出すときに、このnull可能な列が常に正しく返されるわけではなく、キーにマップされている方法と関係があり、キーが見える場合は同じ行が返されることに気付きましたもう存在している。EFでビュー内のすべての行が返されるようにするにはどうすればよいでしょうか?
理想的な解決策は、私の列をnullにすることができないようにすることですが、大きな問題を引き起こすことなくそれを行うことはできません。
もう1つのアイデアは、ROW_NUMBER()
を使用して主キーを作成することでした。私はそれが同様の問題を引き起こすかもしれないかどうかは不明です。(コール間でコンテキストがリフレッシュされていない場合、それはそれだけであるか、クエリが異なることを認識するのに十分スマートですか?)関数とそれが行の動的順序付けにどのように影響するかを示します。
パフォーマンスに与える影響が最も少ないSQLクエリで表示されるすべての行が確実に返されるようにするにはどうすればよいでしょうか?あまりにも、私は11を取得する必要があり
1, 2, null
1, 3, 10
1, 3, 10
:
view: A int, B int, C int?
SQL Results:
1, 2, null
1, 3, 10
1, 3, 11
EFのようなものを返します。
は例..あなたに感謝します。
ありがとうございます。これは私が探していたトリックでした。私はhttp://msmvps.com/blogs/kevinmcneish/archive/2010/02/16/setting-entity-framework-mergeoptions-what-works-what-doesn-t.aspxにいくつかの良い情報が見つかった私のシナリオで。 – emragins