我正在使用表从数据库中更新模型。该表有一个计算字段( SomeFiled ISNULL(column1,column2))
当表格被导入到edmx时,该字段被设置为关键字段。这个配置给我带来了麻烦。
我手动更改了它,但我正在与其他人在项目中工作,并希望防止有人更新模型并忘记更改字段的情况。
有没有办法在edmx或其他变通方法上设置一些更新后的操作?
提前感谢并致以亲切的问候。
发布于 2013-11-27 16:44:21
这是一个针对您的情况的示例,您可以对您的情况使用相同的概念。
在dbcontext子类中,覆盖OnModelCreating并添加一个新配置,如下所示;
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new BankAccountEntityTypeConfiguration());
}同时创建e配置类,如下;
class BankAccountEntityTypeConfiguration:EntityTypeConfiguration<BankAccount>
{
public BankAccountEntityTypeConfiguration()
{
//key and properties
this.HasKey(ba => ba.Id);
this.Property(ba => ba.Balance)
.HasPrecision(14, 2);
//associations
this.HasRequired(ba => ba.Customer)
.WithMany()
.HasForeignKey(ba => ba.CustomerId)
.WillCascadeOnDelete(false);
this.HasMany(ba => ba.BankAccountActivity)
.WithRequired()
.HasForeignKey(ba => ba.BankAccountId)
.WillCascadeOnDelete(true);
}
} 你也可以在配置中使用类似这样的东西;
this.Property(t => t.Sum)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed)https://stackoverflow.com/questions/20237113
复制相似问题