如何在导航属性上将IsModified设置为false

问题描述 投票:0回答:2

我有ArticleApplicationUser模型类:

public class ApplicationUser
{
    ...

}

public class Article
{
    ...

    public ApplicationUser CreatedBy { get; set; }
}

我试图通过这种方式将CreatedBy属性设置为false:

base.Entry(entity).Property(x => x.CreatedBy).IsModified = false;

但我得到这个错误:

实体类型'ApplicationUser'上的属性'CreatedBy'正在使用'Property'方法访问,但在模型中定义为导航属性。使用“参考”或“收集”方法访问导航属性。

c# asp.net-core entity-framework-core
2个回答
3
投票

如果我理解正确,文章实体可能看起来像:

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
投票

我改为使用'Reference'方法而不是'Property'方法访问qazxsw poi:

CreatedBy
© www.soinside.com 2019 - 2024. All rights reserved.