0

我已经运行 EF 5 的原型 Code First 实现大约一年了,但现在管理层已经同意,是时候将原型应用到整个数据库了。

当我第一次对 Code First 项目进行编码时,我使用 EF Powertools 对 Code First 项目进行逆向工程。这给了我一个上下文,然后我更新了它,每个表都有大量的 POCO 类,每个实体都有一个 Map 类。

这仍然是创建 Code First 实现的最佳方式吗?

我在这里读到,我还可以DbContext Generator通过*.edmx.

但是,当我在这里执行第一步并创建*.edmx文件时,我可以看到 POCO 类和正在生成的上下文。我需要DbContext Generator吗?我的意思是这会带来什么我还没有的东西?

从我所见,地图文件没有生成,而是以前保存在该文件中的数据现在是文件的一部分Entities.Designer.cs,但现在有更多代码用于处理对象更改等。

[编辑] 任何人都可以举例说明在对现有数据库进行逆向工程时应该如何构建 Code First 实现吗?

如果有帮助,我正在使用 EF6 并使用 ODAC v11.2 连接到 Oracle 数据库。

4

3 回答 3

1

我创建实体如下:

public class Customer
{
    [Key]
    public int ID{get;set;}

    public string Name{get;set;}

    public string GroupName{get;set;}

    public CustomerGroup Group{get;set;}
}

public class CustomerGroup
{
    [Key]
    public int ID{get;set;}

    public string Name{get;set;}

    public List<Customer> Groups{get;set;}
}

然后你需要一个从 DB 上下文继承的上下文

public class Context : DbContext
{
    public DbSet<Customer> Customers{get;set;}
    public DbSet<CustomerGroup> Groups{get;set;}
}

如果您在 App.Config 中有一个带有上下文类名称的连接字符串,您可以实例化上下文,它应该在连接字符串中给定的位置创建一个具有给定实体的数据库。

于 2013-10-28T12:31:41.723 回答
0

看看这些链接,它们肯定会帮助你:)

Oracle odp 和实体

还有一些在这个网站上。

已回答的错误

和这个

SaveChanges 错误帮助

我从未使用过 oracle,但我可以先编写实体框架代码,所以看看它们。

干杯!

于 2013-10-28T12:27:47.050 回答
0

请关注我的 github 项目。我已经实现了代码优先、工作单元和存储库模式。您可以将其用作启动项目。

https://github.com/erandika1986/CodeFirst

谢谢, 埃兰蒂卡

于 2017-04-10T11:16:57.067 回答