首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何手动更新entity-framework中的实体

如何手动更新entity-framework中的实体
EN

Stack Overflow用户
提问于 2014-01-09 15:57:23
回答 2查看 406关注 0票数 0

我有一个使用实体框架的项目,现在我想添加一个新的实体到框架中,数据库有一些细微的变化,不会影响代码,但是,如果我想通过更新向导添加一个新的实体,这些更改也会实现,并且会抛出错误。我想唯一的办法就是手动添加实体,但我不知道怎么做。

EN

回答 2

Stack Overflow用户

发布于 2014-01-09 16:07:03

将实体框架与模型一起使用时,应对自己的代码使用分部类。在分部类中,您将其放入您的代码中(这样当您更新Model时,您就不会丢失它)。我建议您更新模型并修复错误,因为将来必须更频繁地更新模型,并且不希望每次更改时都手动编写xml。

票数 0
EN

Stack Overflow用户

发布于 2014-01-09 16:24:27

假设您只想在数据库中创建一个表示表的新实体,则可以使用this procedure from another SO question。这应该会为您提供一个仅从其中一个表生成的新实体类,而忽略数据库的其余部分。

更新,回答以下问题:

如果您能够创建实体类,但它没有出现在您需要它的地方,请确保您已经将它添加到您的Context中(应该有一个类来驱动DbContext)。查找类似如下的内容:

代码语言:javascript
复制
public DbSet<SomeExistingEntityClass> SomeExistingEntityClass1 { get; set; }
public DbSet<SomeExistingEntityClass> SomeExistingEntityClass2 { get; set; }
...
public DbSet<YourEntityClass> YourEntityClass { get; set; } // <-- Add this

您可能还需要为新实体添加配置。有几种方法可以做到这一点;在我的例子中,配置是这样在context类中指定的:

代码语言:javascript
复制
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Configurations.Add(new SomeExistingEntityClass1Config());
    modelBuilder.Configurations.Add(new SomeExistingEntityClass2Config());
    ....
    modelBuilder.Configurations.Add(new MyEntityClassConfig()); // <-- Add this
}

..and,那么配置类本身看起来就像:

代码语言:javascript
复制
public class MyEntityClassConfig : EntityTypeConfiguration<MyEntityClassConfig>
{
    public MyEntityClassConfig()
    {
        ToTable("My_Database_Table_Name");
        HasKey(table => table.Name_of_primary_key);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21014581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档