设置外部类属性时自动设置Id

时间:2017-03-26 12:19:32

标签: c# entity-framework

我正在使用EntityFramework,我必须简化如下的类:

public class Class1
{
  public int Id { get; set; }

  public int Class2_Id { get; set; }
  [ForeignKey("Class2_Id")]
  public virtual Class2 Class2 { get; set; }
}

public class Class2
{
  public int Id { get; set; }
  public string Name { get; set; }
}

在设置db.SaveChanges()属性之前,我可以在致电Class1.Class2.Id之前自动设置Class1.Class2吗?我希望实现这一目标,而无需将此逻辑放在Class1.Class2属性的setter中。

1 个答案:

答案 0 :(得分:0)

您可以从DbContext创建部分类扩展并覆盖SaveChanges

public partial class YourEntities : DbContext
{
    public override int SaveChanges()
    {
        var Class1 = ChangeTracker.Entries().Where(
            e => e.State == EntityState.Added &&
                 e.Entity is Class1);
        // Class1.Class2.Id // your logic ...

        return base.SaveChanges();
    }
}