を反映していない場合我々はそれにselect文を持っているストアドプロシージャがあります:T内で実行されると、この2つのレコードを生成しEntity Frameworkの4に戻りマングルされた混乱基礎となるデータは、エンティティの主キー
select convert(int, c.ID) as ID,
convert(nvarchar(255), c.name) as name,
convert(varchar(32), a.state) as state
from customer c join address a on
c.addressid = a.ID
where c.name like @custNameSpec
を-SQLウィンドウ:関数インポートとしてEntity Frameworkの4において実行される場合
ID Name State
1 Robert PA
2 Rob VA
、これは、2つのレコードを返したが、最初のレコードが重複している:
ID Name State
1 Robert PA
1 Robert PA
関数のインポートとインポートされた関数を削除し、再作成しました。また、上記のSQL convert()ステートメントを追加して、Entity Frameworkがサーバーから戻ってくるデータ型を認識できるようにしました。
私たちはそれを修正するために何ができますか?そのような重複の原因は何ですか?
当社のテストが含まれます:
var myresult3 = myUOW.DC.GetAdDir(todaysdate: null, store_nbr: 14,
adtype: null).ToList();
var myresult4 = DB.GetAdDir(todaysdate: null, store_nbr: 14,
adtype: null).ToList();
どちらも同じ間違った結果を返します。
exec [dbo].[GetCust] @todaysdate=NULL,@custNameSpec='Rob',@adtype=NULL
EDIT:SQLプロファイラは、この呼び出しを示し
どうやらを、ビジネスルールが変更されました。 Entity Frameworkから生成されたPOCOにはプライマリキーが正しく設定されていないため、正しい数のフィールドが返されましたが、POCOの主キーフィールドに基づいてすべての重複を同じにすることによって重複が削除されました。
MergeOption
これがなぜ起こるのかを説明するかもしれない他の遠隔関連の質問で参照される。