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

此外,如果我使用调试功能“设置下一个语句”,则在“地址。哪里”行执行后立即转到形容词或实质性行。这两种方法也停止工作。

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

4

1 回答 1

0

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

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

我只需要这种方式。

于 2012-05-03T02:49:08.353 回答