我有Article
和ApplicationUser
模型类:
public class ApplicationUser
{
...
}
public class Article
{
...
public ApplicationUser CreatedBy { get; set; }
}
我试图通过这种方式将CreatedBy属性设置为false:
base.Entry(entity).Property(x => x.CreatedBy).IsModified = false;
但是我得到这个错误:
使用“属性”方法访问实体类型“ ApplicationUser”上的属性“ CreatedBy”,但在模型中将其定义为导航属性。使用“引用”或“集合”方法访问导航属性。
答案 0 :(得分:3)
如果我理解正确,那么Article实体可能看起来像:
public class Article
{
public int Id { get; set; }
public string UserID { get; set; }
// ...
[ForeignKey("UserID")]
public ApplicationUser CreatedBy { get; set; }
}
如错误信息所述,CreatedBy
是此处的导航属性。
因此将您的代码更改为
Entry(entity).Reference(x => x.CreatedBy).IsModified = false;
,
它可能会按预期工作。
答案 1 :(得分:1)
我更改为使用“属性”方法中的“引用”方法来访问CreatedBy
:
base.Entry(entity).Reference(x => x.CreatedBy).IsModified = false;