如何开始创建自己的代码生成器来生成实体对象?

时间:2016-04-13 20:27:15

标签: c# entity generator

我正在分析c#中有2个库的系统:业务层和数据层访问。

商业图书馆有:

    1 BaseManager.cs class
    Several Managers (ClientManager.cs, ContactManager.cs, etc).

    1 BaseEntity.cs class
    Several Entities(Client.cs, Contact.cs, etc)

    1 NotifyPropertyChange.cs  class 

数据访问层具有:

    1 BaseData.cs class
    Several data objects (ClientDatasql.cs, ContactDataSql, etc)

    Several interfaces (IClientData.cs,IContactData.cs, etc)

    1 Class called DataFactory.cs

库中的所有类都是部分的,例如

Client.cs, Client.Generated.cs
ContactManager.cs, ContactManagerGenerated.cs   
BaseData.cs, Basedata.Generated.cs
Etc.

所有这些类都是使用代码生成器生成的,这个代码生成器是由我工作的人编写的。使用的方法是#34;数据库优先",实体框架不习惯这样做。

我的问题是:

如何开始创建自己的代码生成器以生成那种类?

有没有工具可以帮助我做到这一点? 或者我应该从头开始写它? 我应该开始阅读哪些主题?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您首先要仔细查看实体框架是什么以及它提供了什么,那么这可能是一个好主意。

当我遇到EF问题时,我最喜欢的起点往往是msdn.microsoft.com/ef

在您的特定情况下,EF支持名为Database First的工作流,其中现有数据库用于将使用的实体的基础。有许多工具可以使用数据库并从中生成实体类。 Here是完成该操作的基本示例。