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

本文关键字:数据库 框架 代码 实体 | 更新日期: 2023-09-27 18:06:27

我必须使用实体框架在新的或现有的数据库中创建一些新的实体,这些实体需要与一些遗留表进行交互,我想知道这里的最佳方法是什么。我希望在迁移中使用代码优先。

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

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

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

    [Table("Person")]
    public class Person { 
    
  • 使用数据库首先与现有的DB和创建表在现有的DB,但然后我失去了使用POCO和迁移与我的新实体。

是否有更好的选择,我错过了或我应该继续使用数据库第一?

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

您可以使用EntityFramework反向POCO代码第一生成器

对现有数据库进行逆向工程并生成实体框架代码优先Poco类,配置映射和DbContext。这个发电机被设计为可定制的从非常开始,而不是像其他发电机那样固定和僵化。去玩吧对于。tt文件中的Settings,就是这样。

EntityFramework Reverse POCO Generator