更改实体框架数据库首先自动生成域类

时间:2014-03-29 10:41:08

标签: c# entity-framework entity-framework-6 ef-database-first

我可以更改实体框架数据库第一个自动生成的类(在.tt下)从基类派生(BaseEntity)吗?

我的一些域类有两个属性(CreateDateTime& CreateUserId),我想在SaveChanges()之前自动设置这个属性,代码如下:

private void AuditFields()
{
    foreach (var entry in this.ChangeTracker.Entries<BaseEntity>().Where(x => x.State == System.Data.EntityState.Added))
    {
        entry.CreateDateTime = DateTime.Now;
        entry.CreateUserId = CurrentUser.Id;
    }
}

在这些部分类的顶部,我看到了以下警告:

  

手动更改此文件可能会导致应用程序出现意外行为。

1 个答案:

答案 0 :(得分:1)

你打算先编写代码吗? 你需要再次重生吗?

如果您知道这些问题的答案。或者至少考虑过这种影响 见Reverse engineer code first to existing DB

这可以为您提供一个可以从

开始的模型

否则: 部分类方法可能会有所帮助。上次我尝试(EF4)生成的代码是部分的。 您只保留生成的类并添加部分部分

public partial class MyGeneratedClass : SexyBaseObject 
{
//...
}