问题标签 [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.
entity-framework-4 - 我如何创建一个复合键,它首先包含一个外键和代码?
我首先使用 EF4 代码,并希望生成一个由类属性和外键组成的复合键。我有两个课程:订单和公司。Order 类包含一个引用,但这在公司之间不一定是唯一的。所以我打算使用由 Reference 和 Company.CompanyId 组成的复合键。
我尝试使用以下方法进行设置,但收到错误消息“键表达式无效”。
我也试过
这失败了。
这些是我的课:
任何帮助将不胜感激。
.net - Code First CTP4:如何映射这两个实体
假设我有两个实体,Team 和 Match。在每场比赛中,有两支球队,主队和客队。一个球队可以有很多场比赛,但主队和客队只能有一支球队。有时球队是主队,有时同一支球队是客队。我只提供了每个课程的基础知识:
我怎样才能映射这个?我尝试过(设置 ICollection Matches 并尝试对其进行映射,但我知道 HomeTeam 和 AwayTeam 不能具有相同的反向关系(类似这样)。
谢谢。
.net - 如何在 Code First 中使用 .Top()
Code First 可以做到这一点吗?如果我只使用实体框架,我可以这样做:
entity-framework - Entity Framework CTP 4 - Code First 自定义数据库初始化器
我想实现一个自定义数据库初始化策略,以便我可以生成数据库模式并使用提供的用户 ID 和密码将其应用于现有的 EMPTY SQL 数据库。
不幸的是,内置策略没有提供我正在寻找的内容:
我已经解决了以下问题,但这不会创建 ModelHash,因此我无法使用“context.Database.ModelMatchesDatabase()”来验证数据库模式是否已创建并防止多次初始化:
问题:
有谁知道我如何获取/创建模型哈希?(这是一个 EdmMetadata 实体)
-或者-
通常使用 Code First CTP 是否有更好的方法来执行此操作?
c# - EF4 对象状态管理器声称没有附加多个条目
我正在尝试在我的 ASP.NET MVC 应用程序中添加功能来更改我的数据结构的某些字段。单击表单上的提交按钮后,将调用以下操作:
该SaveDocument()
方法如下所示:
由于文档存在(因此具有 Id 值),我调用Attach()
通用存储库的方法。附加方法看起来像:
调用对象集的Attach()
方法时,会出现以下异常:
我不明白为什么会发生这种情况,因为正如您所见,请求的整个生命周期只有一次对 EF 的调用,这就是最后一次Attach(entity)
调用。我错过了什么吗?
作为一个仅供参考,这个系统曾经可以工作,但似乎打破它的是我使用 POCO(最新的 CTP)从模型优先到代码优先的转换。我的所有其他功能都像以前一样工作,除了这种情况。
如果有帮助,我的通用存储库会ObjectSet
通过DbContext
我在上下文类中编写的函数获取:
编辑: 由于评论查看了我的代码后,我才记得我已经实现了一个用于上下文管理的单例。我这样做是因为控制器可能从一个服务类中获取实体,并使用另一个服务类来更新它(我认为这是我试图解决的场景,我不久前实现了它,我'我下班时必须仔细观察)。
我为此使用了单例,因为我的印象是单例不会跨越多个 http 请求,并且我认为这可能是问题所在。我回家时会看看这个。
c# - TPT 映射实体框架 CTP4 的行为类似于 TPH
我正在按照建议编写代码,
... = 我有所有提到的属性和 u.Id 。
当我使用模型构建器时,我也有两者的DbSet<A> A {get;set;}
和DbSet<B> B {get;set;}
和ObjectSet
属性
这导致创建表 A 时带有一个鉴别器列和 Id、Astring、Bstring。这是默认的 TPH 映射,不知道为什么会这样。谢谢
.net - Code First CTP4:没有主键的表?
使用实体框架和代码优先,是否可以让它创建和使用没有主键的表?我无法让这个设置工作:
请注意,我已排除在 ReportChanges 中分配主键。但是通过这种设置,我得到:“无法推断实体类型'ReportChanges '的键”。
要么我遗漏了一些东西,要么 Code First 不支持没有主键的表。什么是正确的?谢谢。
entity-framework-4 - 仅在 EF4 代码上创建数据库后更改模型
嘿,抱歉我的英语不好...仅使用 EF4 代码,我创建了一些 POCO 类,并且我的数据库是从中生成的。一切正常,我在表上插入了一些数据,但现在我需要在我的一个类上创建一个新属性。如果我只是创建它,应用程序会给我一个例外: {“自从创建数据库以来,支持'TestContext'上下文的模型已经更改。手动删除/更新数据库,或者使用 IDatabaseInitializer 实例调用 Database.SetInitializer。对于例如,RecreateDatabaseIfModelChanges 策略将自动删除并重新创建数据库,并可选择为其添加新数据。"}
我试图在表上手动创建字段,但它仍然在抱怨......有人知道是否有办法,如果有,我该如何手动更新数据库架构(我不想重新创建它,因为我已经有数据)来匹配模型?
.net - 实体框架 4.0 的问题
如果我在 NerdDinner (使用 Poco 类)中使用像 Scott Gu 这样的 EF,那么如何获得用于创建数据库的 SQL(如果我使用设计器,它会在项目中创建 SQL)?
是否可以更改在数据库中将字符串创建为 varchar(4000)?
首先十分感谢!
/彼得