实体框架 - 生成类

时间:2012-04-12 15:33:35

标签: c# entity-framework

我有一个现有的数据库。我希望有一种方法可以从这个数据库生成类文件。但是,我似乎从类文件中看到了很多生成数据库。

有没有办法使用Entity Framework从现有数据库生成类文件?如果是这样的话?有人能指点我一个教程吗?

4 个答案:

答案 0 :(得分:118)

1)首先,您需要使用数据库生成EDMX模型。为此,您应该向项目中添加新项目:

  • 从“模板”列表中选择ADO.NET Entity Data Model
  • 在“选择模型内容”页面上,选择“从数据库生成”选项,然后单击“下一步”。
  • 选择您的数据库。
  • 在“选择数据库对象”页面上,选中“表”。如果需要,请选择“视图”或“存储过程”。

现在你的项目中有Model1.edmx个文件。

2)使用您的模型生成类:

  • 打开您的EDMX模型设计师。
  • 在设计界面上右键单击 - >添加代码生成项...
  • 选择在线模板。
  • 选择EF 4.x DbContext Generator for C#
  • 点击“添加”。

请注意,项目中添加了两项:

  • Model1.tt(此模板为模型中的每个实体生成非常简单的POCO类)
  • Model1.Context.tt(此模板生成用于查询和保存数据的派生DbContext)

3)读/写数据示例:

 var dbContext = new YourModelClass(); //class derived from DbContext
 var contacts = from c in dbContext.Contacts select c; //read data
 contacts.FirstOrDefault().FirstName = "Alex"; //edit data
 dbContext.SaveChanges(); //save data to DB

不要忘记您需要4.x版本的EntityFramework。您可以在此处下载EF 4.1:Entity Framework 4.1

答案 1 :(得分:16)

我找到了非常好的解决方案。 Microsoft发布了Entity Framework Power Tools的测试版:Entity Framework Power Tools Beta 2

在某些点击中,您可以为现有数据库生成POCO类,派生DbContext和Code First映射。非常好!

安装后,一些上下文菜单选项将添加到Visual Studio中。

右键单击C#项目。选择实体框架 - >反向工程师代码优先(为现有数据库生成POCO类,派生DbContext和代码优先映射):

Visual Studio Context Menu

然后选择您的数据库并单击“确定”。就这样!这很容易。

答案 2 :(得分:1)

  1. 打开EDMX模型
  2. 右键单击 - >从浏览器更新模型 - >存储过程 - >选择您的存储过程 - >完成
  3. 请参阅解决方案资源管理器旁边的模型浏览器。
  4. 转到功能导入 - >右键单击您的存储过程 - >添加功能导入
  5. 选择返回收藏集下的实体 - >从下拉列表中选择您的实体名称
  6. 构建您的解决方案。

答案 3 :(得分:1)

EDMX模型不适用于EF7,但我发现社区/专业产品似乎非常强大: http://www.devart.com/entitydeveloper/editions.html