1

我可以更改实体框架数据库第一个自动生成的类(在.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

你打算先去代码吗? 你需要再次重新生成吗?

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

这让你可以用

否则启动模式: 部分类方法可以帮助。我上次尝试(EF4)生成的代码是部分。 你独自离开生成的类,并添加一个部分区段

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

谢谢您的回答,但我不能使用代码第一种方法在项目我正在上。 –

+1

据我所知,EF的生成类通常创建为部分类,以便您可以添加元数据和其他东西,所以像这样的东西应该工作,无论您是否先使用代码。 – anaximander

相关问题