0

私はそのようなコード構造を持っています:

var adjective = context.Adjectives.Find(11); //works
var substantive = context.Substantives.Find(11);  //works    
var address = context.Addresses.Where(v => v.ZipCode == new_possible_address.ZipCode).SingleOrDefault();  //works    

var name = context.Names.Find(91); //doesn't work

最後の行はエラーメッセージを示しています。

「プロパティ'Id'はオブジェクトのキー情報の一部であり、変更できません。」

Whereステートメントを削除すると、最後のFindメソッドが機能することに気づきました。それで:

var adjective = context.Adjectives.Find(11); //works
var substantive = context.Substantives.Find(11);  //works    

var name = context.Names.Find(91); //now works

また、デバッグ機能「Set Next Statement」を使用すると、「Addresses.Where」行の実行直後に形容詞または実質的な行に移動します。どちらの方法も機能しなくなります。

同じコンテキスト内でFindandWhereメソッドを使用できないのはなぜですか?

4

1 に答える 1

0

モデルの問題でした。私はそのようなナビゲーションマッピングを完了する必要がありました:

modelBuilder.Entity<People>().HasOptional(c => c.Address).WithMany(); 

私はこのように必要でした。

于 2012-05-03T02:49:08.353 に答える