[英]How to update entity in entity-framework manually
我有一个项目使用的实体框架,现在我想向该框架中添加一个新的实体,数据库做了一些细微的更改,这些更改不会影响代码,但是,如果我想通过更新向导添加一个新的实体,则更改也会实现,并且会引发错误。 我认为唯一的方法是手动添加实体,但是我不知道该怎么做。
当将实体框架与模型一起使用时,应为自己的代码使用部分类。 在部分类中,您放入了代码(因此,在更新模型时,您不会丢失它)。 我建议您更新模型并修复错误,因为将来您将不得不更频繁地更新它,并且您不想在每次更改时都手动编写xml。
假设您只想创建一个表示数据库中表的新实体,则可以使用另一个SO问题中的此过程 。 这应该为您提供一个仅由一个表生成的新实体类,而忽略了数据库的其余部分。
更新,回答以下问题:
如果您能够创建实体类,但未在需要的地方显示它,请确保已将其添加到Context
(应该有一个继承DbContext
的类)。 寻找类似的东西:
public DbSet<SomeExistingEntityClass> SomeExistingEntityClass1 { get; set; }
public DbSet<SomeExistingEntityClass> SomeExistingEntityClass2 { get; set; }
...
public DbSet<YourEntityClass> YourEntityClass { get; set; } // <-- Add this
您可能还需要为新实体添加配置 。 做这件事有很多种方法; 就我而言,配置是在context
类中指定的:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new SomeExistingEntityClass1Config());
modelBuilder.Configurations.Add(new SomeExistingEntityClass2Config());
....
modelBuilder.Configurations.Add(new MyEntityClassConfig()); // <-- Add this
}
..,然后config类本身看起来像:
public class MyEntityClassConfig : EntityTypeConfiguration<MyEntityClassConfig>
{
public MyEntityClassConfig()
{
ToTable("My_Database_Table_Name");
HasKey(table => table.Name_of_primary_key);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.