问题标签 [code-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 投票
4 回答
5279 浏览

entity-framework-4 - 我如何创建一个复合键,它首先包含一个外键和代码?

我首先使用 EF4 代码,并希望生成一个由类属性和外键组成的复合键。我有两个课程:订单和公司。Order 类包含一个引用,但这在公司之间不一定是唯一的。所以我打算使用由 Reference 和 Company.CompanyId 组成的复合键。

我尝试使用以下方法进行设置,但收到错误消息“键表达式无效”。

我也试过

这失败了。

这些是我的课:

任何帮助将不胜感激。

0 投票
1 回答
147 浏览

.net - Code First CTP4:如何映射这两个实体

假设我有两个实体,Team 和 Match。在每场比赛中,有两支球队,主队和客队。一个球队可以有很多场比赛,但主队和客队只能有一支球队。有时球队是主队,有时同一支球队是客队。我只提供了每个课程的基础知识:

我怎样才能映射这个?我尝试过(设置 ICollection Matches 并尝试对其进行映射,但我知道 HomeTeam 和 AwayTeam 不能具有相同的反向关系(类似这样)。

谢谢。

0 投票
1 回答
124 浏览

.net - 如何在 Code First 中使用 .Top()

Code First 可以做到这一点吗?如果我只使用实体框架,我可以这样做:

0 投票
6 回答
14548 浏览

entity-framework - Entity Framework CTP 4 - Code First 自定义数据库初始化器

我想实现一个自定义数据库初始化策略,以便我可以生成数据库模式并使用提供的用户 ID 和密码将其应用于现有的 EMPTY SQL 数据库。

不幸的是,内置策略没有提供我正在寻找的内容:

我已经解决了以下问题,但这不会创建 ModelHash,因此我无法使用“context.Database.ModelMatchesDatabase()”来验证数据库模式是否已创建并防止多次初始化:

问题:

有谁知道我如何获取/创建模型哈希?(这是一个 EdmMetadata 实体)

-或者-

通常使用 Code First CTP 是否有更好的方法来执行此操作?

0 投票
1 回答
1216 浏览

c# - EF4 对象状态管理器声称没有附加多个条目

我正在尝试在我的 ASP.NET MVC 应用程序中添加功能来更改我的数据结构的某些字段。单击表单上的提交按钮后,将调用以下操作:

SaveDocument()方法如下所示:

由于文档存在(因此具有 Id 值),我调用Attach()通用存储库的方法。附加方法看起来像:

调用对象集的Attach()方法时,会出现以下异常:

我不明白为什么会发生这种情况,因为正如您所见,请求的整个生命周期只有一次对 EF 的调用,这就是最后一次Attach(entity)调用。我错过了什么吗?

作为一个仅供参考,这个系统曾经可以工作,但似乎打破它的是我使用 POCO(最新的 CTP)从模型优先到代码优先的转换。我的所有其他功能都像以前一样工作,除了这种情况。

如果有帮助,我的通用存储库会ObjectSet通过DbContext我在上下文类中编写的函数获取:


编辑: 由于评论查看了我的代码后,我才记得我已经实现了一个用于上下文管理的单例。我这样做是因为控制器可能从一个服务类中获取实体,并使用另一个服务类来更新它(我认为这是我试图解决的场景,我不久前实现了它,我'我下班时必须仔细观察)。

我为此使用了单例,因为我的印象是单例不会跨越多个 http 请求,并且我认为这可能是问题所在。我回家时会看看这个。

0 投票
1 回答
368 浏览

c# - TPT 映射实体框架 CTP4 的行为类似于 TPH

我正在按照建议编写代码,

... = 我有所有提到的属性和 u.Id 。

当我使用模型构建器时,我也有两者的DbSet<A> A {get;set;}DbSet<B> B {get;set;}ObjectSet属性

这导致创建表 A 时带有一个鉴别器列和 Id、Astring、Bstring。这是默认的 TPH 映射,不知道为什么会这样。谢谢

0 投票
2 回答
5818 浏览

.net - Code First CTP4:没有主键的表?

使用实体框架和代码优先,是否可以让它创建和使用没有主键的表?我无法让这个设置工作:

请注意,我已排除在 ReportChanges 中分配主键。但是通过这种设置,我得到:“无法推断实体类型'ReportChanges '的键”。

要么我遗漏了一些东西,要么 Code First 不支持没有主键的表。什么是正确的?谢谢。

0 投票
2 回答
900 浏览

entity-framework-4 - 仅在 EF4 代码上创建数据库后更改模型

嘿,抱歉我的英语不好...仅使用 EF4 代码,我创建了一些 POCO 类,并且我的数据库是从中生成的。一切正常,我在表上插入了一些数据,但现在我需要在我的一个类上创建一个新属性。如果我只是创建它,应用程序会给我一个例外: {“自从创建数据库以来,支持'TestContext'上下文的模型已经更改。手动删除/更新数据库,或者使用 IDatabaseInitializer 实例调用 Database.SetInitializer。对于例如,RecreateDatabaseIfModelChanges 策略将自动删除并重新创建数据库,并可选择为其添加新数据。"}

我试图在表上手动创建字段,但它仍然在抱怨......有人知道是否有办法,如果有,我该如何手动更新数据库架构(我不想重新创建它,因为我已经有数据)来匹配模型?

0 投票
3 回答
1094 浏览

entity-framework - 我可以隐藏我的 ICollection当我在 EF4 代码中具有一对多映射时的字段?

我的具有一对多映射的域类通常采用以下形式(未经测试的代码):

我见过的EF4 纯代码示例在处理一对多关系时公开了一个公共 ICollection。

有没有办法通过公开它们来保留和恢复我的收藏?如果不是这样,我的领域对象似乎将被设计为满足 ORM 的要求,这似乎与努力的精神背道而驰。公开 ICollection(使用它的 Add 等方法)似乎不是特别干净,也不是我的默认方法。

更新

发现这篇文章表明它在 5 月是不可能的。当然,微软的海报确实说他们正在“强烈考虑实施”它(我希望如此)而且我们已经过去了半年,所以也许已经取得了一些进展?

0 投票
1 回答
132 浏览

.net - 实体框架 4.0 的问题

如果我在 NerdDinner (使用 Poco 类)中使用像 Scott Gu 这样的 EF,那么如何获得用于创建数据库的 SQL(如果我使用设计器,它会在项目中创建 SQL)?

是否可以更改在数据库中将字符串创建为 varchar(4000)?

首先十分感谢!

/彼得