【问题标题】:C# Code First SaveChanges does not update navigational properties/foreign key valuesC# Code First SaveChanges 不更新导航属性/外键值
【发布时间】:2017-09-28 02:48:56
【问题描述】:

我有一个奇怪的问题,当我向数据库添加新值时。假设我也希望导航属性在UnitOfWork.SaveChanges() 之后有数据。

这是我的模型:

    [Column("Client_ID"), Key]
    public int ClientID{ get; set; }

    [Column("Employee_ID"), Required]
    public int EmployeeID { get; set; }

    [ForeignKey("EmployeeID")]
    public virtual Employee201 Employee { get; set; }

在保存更改时,只有 ClientID 更新了值,而不是带有外键的 Employee。我这里缺什么吗?

存储库方法

    public Client Create(Client  client )
    {
        if (client != null)
        {
            GetDbSet<Client  >().Add(client );
            UnitOfWork.SaveChanges();
        }
        return client ;
    }

更新

现在我发现了问题。当我使用 new Client() 添加新数据时,此结果仅适用于实体类型而不是代理类型。有没有办法在我使用 new Client() 时转换它,它应该始终是代理类型?

【问题讨论】:

  • 你是如何创建client的?

标签: c# entity-framework ef-code-first code-first


【解决方案1】:

什么是 Employee201 ?

我总是这样写 它有效。

(客户端是您的数据库集。 公共 System.Data.Entity.DbSet 客户端 { 获取;放; })

UnitOfWork = new DataBaseContext();

UnitOfWork.Clients.Add(client);

UnitOfWork.SaveChanges();

【讨论】:

    猜你喜欢
    • 2014-01-20
    • 2016-01-09
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多