Entity framework 4 EF 4.3:can';不要在同一上下文中使用Find和Where

Entity framework 4 EF 4.3:can';不要在同一上下文中使用Find和Where,entity-framework-4,entity-framework-4.1,Entity Framework 4,Entity Framework 4.1,我有这样的代码结构: 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 va

我有这样的代码结构:

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 station,则最后一个Find方法有效。因此:

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

var name = context.Names.Find(91); //now works
另外,如果我使用调试功能“setnextstatement”,则在执行“Addresses.Where”行之后,将转到形容词行或实质行。两种方法都不起作用


为什么不能在同一上下文中使用Find和Where方法?

这是一个模型问题。我必须完成这样的导航映射:

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

我只需要这样

在另一台计算机上测试,或格式化硬盘,重新安装OS、.NET、Visual Studio、EF、重新编译解决方案。。。这个错误太疯狂了。。。