7

我已经使用数据库优先方法(使用现有数据库)开始了一个非常简单的 ASP.Net MVC4 应用程序。我.edmx使用 ADO.Net 实体数据模型模板生成。该进程在选项xxxxxxx.Designer.cs下创建了一个文件xxxxxxx.edmx。但是,.cs 文件为空并显示以下消息。

// Default code generation is disabled for model 'C:\Visual Studio 2010\Projects\xxx\DProject\Models\BIReportDataModel.edmx'. 
// To enable default code generation, change the value of the 'Code Generation Strategy' designer
// property to an alternate value. This property is available in the Properties Window when the model is
// open in the designer.

在消息之后,我更改了在xxxxxxx.Designer.cs文件中生成代码的属性。

问题:

  1. 这是正确的做法吗?这个文件的目的是什么?
  2. 我是否还需要通过右键单击“添加代码生成项”然后选择 EF DBContext Generator 从 .edmx 设计器页面生成强类型 DBContext 类?

数据库优先方法的过程到底是什么?

我看过很多帖子/博客/教程,所有似乎都非常令人困惑,主要是针对 CodeFirst 方法。

4

2 回答 2

7

Code First 在技术上既是数据库优先又没有数据库(它很灵活)您只需创建 POCO(普通的旧 C# 对象)这些类将根据您的需要映射您的数据库表模式结构,无论数据库是否存在。如果您不知道自己在做什么,那么您可能不想这样做。

EDMX,以前是设计器会被填充,但在 VS 2012 和更大的 tt 文件是默认设置。您应该使用 nuget 的 tt 编辑器来真正从它们中获得很多东西。

或者我建议您执行以下操作

 1. Open the EDMX file - double click
 2. Right Click in the EDMX diagram and click on Properties 
 3. In the properties window change the "Code Generation Strategy" from  None to Default
 4. Delte the tt files as you don't want both entities / contexts in project.
于 2013-12-31T06:37:11.377 回答
1

在 Visual Studio 2017 中,要在设计器 .cs 文件中创建代码(使用实体框架 5.0),我会:

  • 打开模型 .edmx 并更改“代码生成策略”
  • 删除模型中的 .tt 文件

在此处输入图像描述

于 2018-01-25T11:36:53.667 回答