实体框架代码首先围绕现有数据库

时间:2016-09-09 15:08:25

标签: c# entity-framework

我必须使用Entity Framework在新数据库或现有数据库中创建一些新实体,这些实体需要与一些遗留表进行交互,我想知道最好的方法是什么。我希望将Code First用于迁移。

例如,假设我有一个现有的已填充Person表,我需要创建一个Animal表,其中包含一个PersonId外键来引用现有人员。

据我所知,这些是我的选择:

  • 使用代码优先迁移和POCO实体类,使用DBContext创建新的DBSet<Animal>(对于新数据库)。设置指向另一个DB的外键时出现问题。
  • 使用DBContext创建一个新的DBSet<Animal>(以现有数据库为目标),并在现有表周围创建某种POCO包装器。我不确定这是否可行 - 我尝试了类似但是在应用迁移时,EF试图创建Person表。我假设这将映射到现有表而不是创建一个新表:

    [Table("Person")]
    public class Person { 
    
  • 首先将数据库与现有数据库一起使用,并在现有数据库中创建表格,但后来我失去了使用POCO和迁移我的新成员。

我有没有更好的选择,或者我应该先使用数据库?

1 个答案:

答案 0 :(得分:2)

您可以使用EntityFramework Reverse POCO Code First Generator

  

反向设计现有数据库并生成实体框架   Code First Poco类,配置映射和DbContext。   这台发电机的设计可以从中进行定制   开始,而不像其他发电机那样固定和刚性。去玩   使用.tt文件中的设置,它是什么   对

以下是链接:EntityFramework Reverse POCO Generator