问题标签 [ef-database-first]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
336322 浏览

entity-framework - 代码优先与模型/数据库优先

使用实体框架 4.1 代码优先而不是模型/数据库优先和 EDMX 图的优缺点是什么?

我试图完全理解使用 EF 4.1 构建数据访问层的所有方法。我正在使用存储库模式和IoC.

我知道我可以使用代码优先的方法:手动定义我的实体和上下文,并使用它ModelBuilder来微调架构。

我还可以创建EDMX图表并选择使用 T4 模板生成相同POCO类的代码生成步骤。

在这两种情况下,我最终都会POCO得到不可知的对象ORM和派生自DbContext.

数据库优先似乎最吸引人,因为我可以在 Enterprise Manager 中设计数据库,快速同步模型并使用设计器对其进行微调。

那么这两种方法有什么区别呢?仅仅是偏好 VS2010 与 Enterprise Manager 吗?

0 投票
1 回答
783 浏览

entity-framework-4 - EF4 DB-first:TPH 方法?

我知道这不应该是微不足道的,但到目前为止找不到解决方案......

使用 EF4 DB-First 模型,将 LINQ-to-Entities 与将由 MVC3 应用程序使用的 POCO 一起使用。

我有三个实体CustomerCustomerAdress一个查找CustomerAddressType

如您所见,CustomerAddress有一个FK CustomerAddressTypeId,它标识这是什么类型的地址,即MailingBilling

我想:

  • 有能力做这样的事情:Customer.CustomerAddress.OfType<MailingAddress>为客户收集邮寄地址。
  • 有一个CurrentMailingAddressCurrentBillingAddress属性,它将返回CustomerAddress.OfType<>具有最高StartDateEndDate未来的单个实例。
  • 也可以Address通过Zip属性并将这些属性重构为Complex Type Address

我尝试创建 2 个继承的实体CustomerAddress(假设它是 TPH [table-per-hierarchy] 策略): MailingAddress并且BillingAddressCustomerAddressTypeId作为鉴别器。我在模型设计器中这样做了,当我尝试添加第二个继承实体时,它告诉我具有这些名称的属性已经存在,并且不允许我重命名它们以匹配第一个实体的属性。

任何想法如何做到这一点?请帮我把它搞砸:) 谢谢!!!

0 投票
3 回答
1634 浏览

asp.net-mvc-3 - 将动态数据(用于数据脚手架)添加到 ASP.NET MVC 3 站点

我正在这里做我的第一个 ASP.NET MVC 3 项目,因为我需要支持存储过程,所以我决定使用带有“数据库优先”方法的 Entity Framework 4.1,例如所有的 EDMX 优点。

因为我绝对需要存储过程支持,所以我不能使用代码优先(尽可能多地)。

所有很酷的新 MVC 脚手架东西似乎都基于代码优先(我不能使用 - 见上文)——或者有一种方法/设置来影响它,以便它使用ObjectContext而不是DbContext??。

那么如何创建我的 MVC 3 应用程序的快速部分来搭建一些查找表 - 使用 EF 4.1 数据库优先方法?我可以使用动态数据吗?如何将此添加到现有的 MVC 3 (.NET 4) 项目中?似乎找不到动态数据的任何“添加新项目”条目.....而且我找到的所有操作视频都适用于 MVC 1 或 2 和 .NET 3.5 - 它们仍然适用吗?

0 投票
6 回答
4164 浏览

entity-framework-4 - 为什么 Database First EF 跳过映射某些表?

我正在使用 Entity Framework 4 和 Database First 绑定,并且 EF 没有为我的一些表生成实体。我没有收到任何错误,无论我从设计图面上的“从数据库更新模型”弹出菜单中选择要生成的表多少次,模型中仍然缺少相同的表。

我在向导中没有错误。它们只是没有生成。有什么线索吗?

0 投票
4 回答
13486 浏览

entity-framework-4.1 - CodeFirst 与 Database First 相比有什么优势?

我正在观看 EF 4.1 的一些视频和教程,但我不了解 CodeFirst 的任何好处(除非 DB 是非常小的 3-4 个表并且我懒得先创建 DB)。

大多数情况下,到目前为止,最好的方法是在某种数据库编辑器中创建数据库,这肯定比在实体模型中编辑更快,并且 EF 会拾取每个关系并正确创建关联。我知道在命名约定等方面存在挑战,但我觉得管理 Code First 非常令人困惑,因为一切看起来都像代码,而且代码太多。

CodeFirst 可以做什么而 Db first 不能做什么?

0 投票
1 回答
1909 浏览

entity-framework - MVC3 和 EF 数据优先:最佳实践是什么?

似乎 MVC3 和 EF4.1 的大部分关注点都围绕着“代码优先”——我似乎找不到任何符合以下标准的示例或教程:

  • 使用现有的 SQLServer 数据库
  • 有单独的网络和数据访问项目(我们将有多个网络应用程序共享相同的数据访问类)
  • 验证建议

是否存在这样的示例或教程?是否有任何记录在案的“最佳实践”来说明如何实现这一点,或者没有以这种方式构建解决方案的理由?

0 投票
1 回答
2396 浏览

entity-framework - 为什么实体框架没有按要求注释一些不可为空的列?

我首先使用带有数据库的 EF 4.1。

示例表:

EF 将所有 3 列正确加载为 nullable = false 的模型。

代码生成项“ADO.NET DbContext Generator”的输出:

在 MVC3 中,我FooController通过 db 上下文和 foo 模型生成。当我打开 /Foo/Create 并在空白表单上点击“Create”时,它会在“Created”字段上显示验证错误,但在“Title”上却没有。

如果我只输入“创建”日期,则会出现异常:

一个或多个实体的验证失败。有关更多详细信息,请参阅“EntityValidationErrors”属性

例外是“标题字段是必需的”。

我不确定为什么它适用于一列但不适用于另一列。我的第一个修复是简单地添加注释,但是类代码是由 EF 自动生成的。

唯一可行的修复方法是使用部分元数据类:ASP.NET MVC3 - Data Annotations with EF Database First (ObjectConext, DbContext)

我可以根据需要添加 [Required] 标签,但这应该是不必要的。这是 EF 中的错误还是我只是遗漏了什么?

0 投票
3 回答
5339 浏览

c# - 如何在多个模型中使用同一张表?

我在 MVC3 Web 应用程序中使用 Entity Framework 4.1。我的任务是重写一个带有大约 200 多个表的数据库的遗留应用程序,这些表已经存在数据,因此采用 EF 的数据库优先方法。

我知道为整个应用程序创建一个巨大的 edmx 模型是一种不好的做法,但是经过数小时的研究,我无法确定如何前进的明确方向,因为我无法弄清楚如何重用公用表在多个模型中。但我想将我的模型分解成更小的、可管理的上下文。

当我在两个模型中放置一个公共表(如Users)时,项目抛出编译错误,形式如下:

“Project.Models.EntityX”类型已包含“EntityX_PropertyY”的定义

我发现最接近解决方法的是:http ://connect.microsoft.com/VisualStudio/feedback/details/366721/entity-framework-the-type-xxx-already-contains-a-definition-for- X

Microsoft 于 2008 年 9 月 17 日下午 5:18 发布

这个问题是设计使然。解决方法是将模型放在不同的文件夹中(对于 C# 和 ASP.NET 项目),或者设置自定义工具命名空间(对于 C# 和 VB 项目)。

这是08年的事了。我无法选择工作,我想知道是否有更好的方法来构建项目,以便我能够在多个模型中使用同一个表?

0 投票
2 回答
1264 浏览

entity-framework - Entity Framework 可以生成 DAL 代码吗?

我知道实体框架有一个数据库优先的方法。现在的问题是它是否可以为我生成 DAL(数据访问层)代码(而不是模型)。

0 投票
1 回答
1043 浏览

database - MVC 3 Database First 和 Entity Framework 4.1:我看不到数据库中的数据

我使用 Visual Studio 2010、MVC 3 和 Entity Framework 4.1(数据库优先)使用现有数据库创建 Web 应用程序。换句话说,数据库的结构用于生成模型的基本代码。我使用“具有读/写操作和视图的控制器,使用 EntityFrameword”作为脚手架选项创建了控制器。但是,当我访问 Web 应用程序时,我看不到数据库中已经存在的数据,如果我插入新数据,我可以使用 Web 应用程序看到它,但在我的数据库中看不到它。我现在想知道我的 Web 应用程序在哪里获取和存储其数据。就好像在其他地方创建了一个具有相同结构的新数据库,但我不知道在哪里。

顺便说一句,我在创建第一个控制器时将“新数据上下文...”指定为数据上下文类。