问题标签 [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.
entity-framework - 代码优先与模型/数据库优先
使用实体框架 4.1 代码优先而不是模型/数据库优先和 EDMX 图的优缺点是什么?
我试图完全理解使用 EF 4.1 构建数据访问层的所有方法。我正在使用存储库模式和IoC
.
我知道我可以使用代码优先的方法:手动定义我的实体和上下文,并使用它ModelBuilder
来微调架构。
我还可以创建EDMX
图表并选择使用 T4 模板生成相同POCO
类的代码生成步骤。
在这两种情况下,我最终都会POCO
得到不可知的对象ORM
和派生自DbContext
.
数据库优先似乎最吸引人,因为我可以在 Enterprise Manager 中设计数据库,快速同步模型并使用设计器对其进行微调。
那么这两种方法有什么区别呢?仅仅是偏好 VS2010 与 Enterprise Manager 吗?
entity-framework-4 - EF4 DB-first:TPH 方法?
我知道这不应该是微不足道的,但到目前为止找不到解决方案......
使用 EF4 DB-First 模型,将 LINQ-to-Entities 与将由 MVC3 应用程序使用的 POCO 一起使用。
我有三个实体Customer
和CustomerAdress
一个查找CustomerAddressType
。
如您所见,CustomerAddress
有一个FK CustomerAddressTypeId
,它标识这是什么类型的地址,即Mailing或Billing。
我想:
- 有能力做这样的事情:
Customer.CustomerAddress.OfType<MailingAddress>
为客户收集邮寄地址。 - 有一个
CurrentMailingAddress
和CurrentBillingAddress
属性,它将返回CustomerAddress.OfType<>
具有最高StartDate
和EndDate
未来的单个实例。 - 也可以
Address
通过Zip
属性并将这些属性重构为Complex TypeAddress
。
我尝试创建 2 个继承的实体CustomerAddress
(假设它是 TPH [table-per-hierarchy] 策略):
MailingAddress
并且BillingAddress
,CustomerAddressTypeId
作为鉴别器。我在模型设计器中这样做了,当我尝试添加第二个继承实体时,它告诉我具有这些名称的属性已经存在,并且不允许我重命名它们以匹配第一个实体的属性。
任何想法如何做到这一点?请帮我把它搞砸:) 谢谢!!!
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 - 它们仍然适用吗?
entity-framework-4 - 为什么 Database First EF 跳过映射某些表?
我正在使用 Entity Framework 4 和 Database First 绑定,并且 EF 没有为我的一些表生成实体。我没有收到任何错误,无论我从设计图面上的“从数据库更新模型”弹出菜单中选择要生成的表多少次,模型中仍然缺少相同的表。
我在向导中没有错误。它们只是没有生成。有什么线索吗?
entity-framework-4.1 - CodeFirst 与 Database First 相比有什么优势?
我正在观看 EF 4.1 的一些视频和教程,但我不了解 CodeFirst 的任何好处(除非 DB 是非常小的 3-4 个表并且我懒得先创建 DB)。
大多数情况下,到目前为止,最好的方法是在某种数据库编辑器中创建数据库,这肯定比在实体模型中编辑更快,并且 EF 会拾取每个关系并正确创建关联。我知道在命名约定等方面存在挑战,但我觉得管理 Code First 非常令人困惑,因为一切看起来都像代码,而且代码太多。
CodeFirst 可以做什么而 Db first 不能做什么?
entity-framework - MVC3 和 EF 数据优先:最佳实践是什么?
似乎 MVC3 和 EF4.1 的大部分关注点都围绕着“代码优先”——我似乎找不到任何符合以下标准的示例或教程:
- 使用现有的 SQLServer 数据库
- 有单独的网络和数据访问项目(我们将有多个网络应用程序共享相同的数据访问类)
- 验证建议
是否存在这样的示例或教程?是否有任何记录在案的“最佳实践”来说明如何实现这一点,或者没有以这种方式构建解决方案的理由?
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 中的错误还是我只是遗漏了什么?
c# - 如何在多个模型中使用同一张表?
我在 MVC3 Web 应用程序中使用 Entity Framework 4.1。我的任务是重写一个带有大约 200 多个表的数据库的遗留应用程序,这些表已经存在数据,因此采用 EF 的数据库优先方法。
我知道为整个应用程序创建一个巨大的 edmx 模型是一种不好的做法,但是经过数小时的研究,我无法确定如何前进的明确方向,因为我无法弄清楚如何重用公用表在多个模型中。但我想将我的模型分解成更小的、可管理的上下文。
当我在两个模型中放置一个公共表(如Users)时,项目抛出编译错误,形式如下:
“Project.Models.EntityX”类型已包含“EntityX_PropertyY”的定义
Microsoft 于 2008 年 9 月 17 日下午 5:18 发布
这个问题是设计使然。解决方法是将模型放在不同的文件夹中(对于 C# 和 ASP.NET 项目),或者设置自定义工具命名空间(对于 C# 和 VB 项目)。
这是08年的事了。我无法选择工作,我想知道是否有更好的方法来构建项目,以便我能够在多个模型中使用同一个表?
entity-framework - Entity Framework 可以生成 DAL 代码吗?
我知道实体框架有一个数据库优先的方法。现在的问题是它是否可以为我生成 DAL(数据访问层)代码(而不是模型)。
database - MVC 3 Database First 和 Entity Framework 4.1:我看不到数据库中的数据
我使用 Visual Studio 2010、MVC 3 和 Entity Framework 4.1(数据库优先)使用现有数据库创建 Web 应用程序。换句话说,数据库的结构用于生成模型的基本代码。我使用“具有读/写操作和视图的控制器,使用 EntityFrameword”作为脚手架选项创建了控制器。但是,当我访问 Web 应用程序时,我看不到数据库中已经存在的数据,如果我插入新数据,我可以使用 Web 应用程序看到它,但在我的数据库中看不到它。我现在想知道我的 Web 应用程序在哪里获取和存储其数据。就好像在其他地方创建了一个具有相同结构的新数据库,但我不知道在哪里。
顺便说一句,我在创建第一个控制器时将“新数据上下文...”指定为数据上下文类。