问题标签 [ef-model-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 投票
1 回答
127 浏览

.net - 如果使用 EF 生成数据库,是否也使用 EF 来管理数据库?

“管理”,如对表格进行更改。

如果是,这如何与多个开发人员和数据库的多个副本(用于开发/生产)一起工作?

0 投票
1 回答
2367 浏览

.net - 从实体框架模型中的模型生成数据库时如何进行迁移

我有一个现有模型,最初从这个模型生成了数据库,并用一些数据填充了现有表。现在我在模型中添加了一个新表。有没有办法从新模型更新数据库而不会丢失现有表中的所有数据?谢谢。

0 投票
4 回答
6621 浏览

.net - 如何针对 MDF 文件运行 SQL 脚本?

我使用 Entity Framework 4.0 使用模型优先方法创建了一个数据库模型。然后我使用从模型生成数据库创建了一个 sql 脚本...我还在我的 App_Data 文件夹中创建了一个 SQL Server 数据库文件。我现在如何针对这个 MDF 文件运行 SQL 文件?

我正在使用 Visual Studio 2010。

0 投票
2 回答
4820 浏览

.net - 实体框架:模型优先,继承?

我有一个 Person 表、一个 Employee 表和一个 Contractor 表。所有员工都是人,所有承包商都是人,每个人要么是雇员,要么是承包商。像这样:替代文字

我如何能够使用 Model First 来完成这个概念?遗产?

0 投票
1 回答
447 浏览

.net - “将外键属性添加到..”复选框为 0..1 到 1 关系禁用

在设计器中的模型优先方法中,如果我创建一个关系,其中关系一端的基数为“0..1”,另一端为“1”,设计器将禁用“添加外键属性”。 .' 复选框。

例如,假设我有一个 Order 实体和一个 OrderQuantity 实体,其中 OrderQuantity 实体只是规定了可用的 Order 实体的初始数量,但不必指定。因此,一个 Order 可以有 0 个或 1 个 OrderQuantity,而一个 OrderQuantity 总是有 1 个 Order。

如果我试图让实体引用其自身的先前版本和更新版本(即列表中的节点),这同样适用。

定义这种关系,设计者根本不允许我添加外键属性,我必须依赖导航方法(生成良好)。

有没有其他人经历过这个?

0 投票
1 回答
2137 浏览

.net - DbContext 无法初始化模型优先数据库

更新:事实证明我有(隐藏在我的 POCO 对象中)一个具有抽象类型的属性。删除此属性可解决此问题。


我正在尝试使用实体框架 4 ctp 5 的模型优先方案从我的模型生成我的数据库(当前使用 SQL Server CE4 后端,但我可以在 Sql Server 2008 后端上重现)。

我想我可能以某种方式弄乱了我的模型定义,但我似乎无法弄清楚错误消息是如何让我更明智的。

我的 DbContext 对象设置如下:

当我查询它时(如下):

我收到以下错误:

[ArgumentNullException:值不能为空。参数名称:entitySet]
System.Lazy 1.Initialize() +62 System.Data.Entity.Internal.Linq.InternalSet 1.System.Linq.IQueryable.get_Provider() +13 System.Linq.Queryable.Where(IQueryable 1 谓词) +631.get_Value() +9591079
System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +371 System.Data.Entity.Internal.InternalContext.Initialize() +16 System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +15
System.Data.Entity.Internal.Linq.InternalSet
1.get_Provider() +15 System.Data.Entity.Infrastructure.DbQuery1 source, Expression

但是,我第一次构建时,这是具体错误:

[ArgumentNullException:值不能为空。参数名称:entitySet]
System.Data.Entity.ModelConfiguration.Utilities.RuntimeFailureMethods.ReportFailure(ContractFailureKind contractFailureKind, String userMessage, String conditionText, Exception innerException) +970860
System.Data.Entity.ModelConfiguration.Edm.Db.Mapping.DbDatabaseMappingExtensions.GetEntitySetMapping (DbDatabaseMapping databaseMapping, EdmEntitySet entitySet) +147
System.Data.Entity.ModelConfiguration.Edm.Services.EntityTypeMappingGenerator.Generate(EdmEntityType entityType, DbDatabaseMapping databaseMapping) +206
System.Data.Entity.ModelConfiguration.Edm.Services.DatabaseMappingGenerator.GenerateEntityTypes(EdmModel模型,DbDatabaseMapping 数据库映射)+253
System.Data.Entity.ModelConfiguration.Edm.Services.DatabaseMappingGenerator.Generate(EdmModel 模型) +168
System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions.GenerateDatabaseMapping(EdmModel 模型,DbProviderManifest providerManifest) +233
System.Data.Entity.ModelConfiguration .ModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo, Boolean validateModel) +280 System.Data.Entity.ModelConfiguration.ModelBuilder.Build(DbConnection providerConnection) +173
System.Data.Entity.Internal.LazyInternalContext.CreateModel() +61

0 投票
1 回答
210 浏览

.net - EF 4.1 Code First 或 EF 4.0 Model First 哪个更快?

这两种方法都有性能优势吗?

0 投票
1 回答
259 浏览

.net - 一般实体框架混淆

所以我遇到了一些事情,想知道你是否可以帮助我。我对 MS MVC 2 和 Entity Framework 4.0 非常陌生(这是我使用这些语言的第一个项目)。我使用模型优先方法和图形设计器绘制了一个模型。我还没有它的 SQL 数据库,我认为它只是在断开连接的情况下工作,但也许我只是忘记了我在某处指定了一个连接字符串。因此,我开始使用 EF 中新创建的类型来启动和运行 MVC 组件。我正在尝试使用存储库模式以及 Ninject 进行依赖注入。所以在我不得不担心实际的数据存储之前,我有很多时间。这让我想到了我的问题:我现在就在那个时候。

我认为它附加到一个 .mdf 文件并在 SQLExpress 实例上运行它,但我真的找不到任何支持它的东西。我没有安装 SSMS,所以我不知道如何正确检查。最终启动并运行,没有分贝。所以现在我很困惑这实际上是在哪里连接的,如果有的话。我认为这太奇怪了,想重新开始。我为模型生成了 SQL 脚本,并在 SSMS 中创建了一个新的数据库来运行该脚本。运行脚本,一切正常。然后我进入 VS 并运行 Database First 场景。因此,模型现在显示了我所有的表,并通过将它们指定为不应该的键来有效地搞砸了一些字段。解决了这个问题,现在我又回到了最初让我感到沮丧的问题上。

我有一个用户表,其中有一个应该是 Guid 的 userId 字段,但在最初的建模过程中我错过了它,它是一个 varchar 字段。我无法修复它下面的映射以将底层(不确定它的实际术语)字段更改为 Guid。我更改了模型的类型,但没有更新数据库。这基本上使我处于一个奇怪的位置。我相信我应该允许 EF 在没有我参与的情况下为我管理 SQL,但如果这是真的,我怎么能推动这样的改变。每次我需要更改架构时,我是否仅限于删除整个数据库?

抱歉,如果这是菜鸟问题中最菜的问题,但我正试图弄清楚所有这些东西,并且真的可以使用一些输入。我使用的最后一个语言集是带有 ADO.Net 类型数据集的 ASP.Net 2.0。我是否最好切换到 Code First 方法?如果我要这样做,我是否必须自己重新开始管理 SQL?

我相信这是我在这里的第一个问题,如果我违反了任何内容,我深表歉意;我想我很清楚。

0 投票
1 回答
759 浏览

asp.net-mvc-3 - 在 Model First 开发中使用 DataAnnotations 和属性

我一直在使用 EDMX 设计器“模型优先”开发我的模型。我很喜欢它,但想知道如何使用此过程将属性(特别是 DataAnnotations)应用于我的模型类,如下所示:

我猜如果我在我的模型类中手动输入这些内容,那么每当我更新我的 EDMX 文件时它都会被覆盖。这里的正确流程是什么?

谢谢!

0 投票
2 回答
550 浏览

.net - 生成数据库 - 没有执行 SQL 选项?

我一直在尝试遵循一些关于如何在 MVC 中使用模型优先方法创建数据库的教程。我已经在设计器中创建实体并尝试从模型生成数据库。它可以很好地创建 SQL 文件,但我似乎无法执行它?我没有办法这样做吗?当我右键单击文件时,执行选项不可用,当我打开文件并在上下文中右键单击时,该选项不可用。我尝试连接到一个空白数据库,然后使用模型实体在该数据库上创建实体模型,然后尝试从模型生成数据库,但仍然无法从 VS2010 express 中执行 sql。有没有它不存在的原因?

问题 2 我喜欢使用模型优先方法,因为我发现所有实体及其关系的图形表示很容易理解,而且我喜欢通过单击按钮创建所有 C# Db 访问类的事实。然而,MVC 3 的大多数示例似乎都使用代码优先方法。使用代码优先而不是模型优先有很大的好处吗?哪种方法更容易掌握?我来自数据库背景,当我确实做了一些 asp 编码时,数据库总是首先到位:)