C#Code First SaveChanges不更新导航属性/外键值

时间:2017-09-28 02:48:56

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

我有这个奇怪的问题,当我向数据库添加新值时。假设我也期望导航属性在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 ;
    }

更新

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

1 个答案:

答案 0 :(得分:0)

什么是Employee201?

我总是这样写 它有效。

(客户端是你的dbset。 public System.Data.Entity.DbSet&lt;客户机GT;客户{get;组; })

UnitOfWork = new DataBaseContext();

UnitOfWork.Clients.Add(客户端);

UnitOfWork.SaveChanges();