问题标签 [ctp4]

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 投票
0 回答
551 浏览

entity-framework - 使用Entity Framework Code First CTP4如何将一个实体映射到多个表?

使用 CTP4 和 Code First,是否可以将单个实体映射到两个表(使用两个表之间的 1-1 关系)?

如果是这样,怎么做?

MSDN:“如何:定义具有映射到两个表的单个实体的模型” http://msdn.microsoft.com/en-us/library/bb896233.aspx

相关:将数据从 2 个表映射到 1 个实体 - 实体框架 4

0 投票
1 回答
147 浏览

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

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

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

谢谢。

0 投票
6 回答
14548 浏览

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

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

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

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

问题:

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

-或者-

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

0 投票
4 回答
8822 浏览

c# - 实体框架代码优先 CTP4 默认列值?

我一直在使用 Entity Framework CTP4 研究 Code First,您可以使用 ModelBuilder 来构建表格列。有没有办法使用 ModelBuilder 或其他机制为数据库中的列设置默认值?

谢谢你!

0 投票
2 回答
5818 浏览

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

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

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

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

0 投票
1 回答
423 浏览

entity-framework - 如何使用纯代码 CTP4 预生成视图?

使用 CTP 4 和纯代码(无 .edmx 模型文件)时,我们遇到了性能问题。

使用纯代码和 CTP 4 时是否可以预先生成“视图”?

0 投票
1 回答
2158 浏览

c# - 使对象上下文(EF4/CTP4)线程安全?

我在 ASP.NET 4 中为我的项目使用最新版本的实体框架 4 - CTP 4。此版本 (EF4-CTP 4) 提供了使用代码优先方法构建对象上下文(或 DBContext)的选项。这种方法有其自身的缺点,即耗时,因此我在应用程序启动时构建它一次。但是我在许多文章中读到,创建对象上下文的单例对象可能并不明智。所以我希望维护小的上下文实例可能是每个会话。

所以我的问题是: 1. 是否建议在多个会话中共享对象上下文?2. 如果我们希望每个会话有一个实例,我们可以构建一次并将其实例用于多个会话吗?3. 如果跨会话共享,我们如何维护并发/提交?

谢谢。

0 投票
1 回答
448 浏览

entity-framework-4 - EF CTP4 何时调用 context.SaveChanges

我正在尝试复制我们在 EF CTP4 中使用 NHibernate 的许多做法。

目前我们有一个通用的存储库接口(CTP4 实际上使用 DbContext.Set 使这很容易)。

我们传入上下文并使用 StructureMap 来根据 HttpRequest 对其进行范围。

使用 NHibernate,我们传入 ISession(再次使用 StructureMap 创建),但使用 ActionFilter (UnitOfWork) 在请求结束时提交事务。

我们在 EF CTP4 中是否有等效事务?如果不是,我应该使用相同的过滤器来调用 context.SaveChanges() 还是只在存储库中执行此操作。

在旁注中,测试实体是否是新实体的最简单方法是什么。使用 NH,我们可以轻松调用 ISession.SaveOrUpdate。请注意,我的所有实体都使用 Guid 标识符。也许检查默认(Guid)?

谢谢。

0 投票
1 回答
2455 浏览

entity-framework-4 - SQL CE 4 System.Transaction 支持

在这里提出了类似的问题,但没有答案。

我正在尝试将 System.Transactions.CommittableTransaction 与 EF CTP4 和 SQL CE 4 一起使用。

我为我的 ASP.NET MVC 控制器操作创建了以下事务属性:

当我使用这个过滤器时,我得到了错误:

System.InvalidOperationException:无法在事务范围内登记连接对象。

但是,以下测试通过:

这与我初始化 DbContext 的方式有关吗?

0 投票
1 回答
851 浏览

database-design - EF4 中使用 CTP4 Code First 作为 TPH 鉴别器的外键

总结一下我的模型:

  • 执照和证书是资格的孩子
  • 一个资格只有一个职业
  • 专业是许可类型(类型 1)或认证类型(类型 2)

要求:表示业务实体之间的关系,而不在数据库模式中引入冗余。资格类型(执照/证书)必须与专业类型相匹配。

这是我目前的简化模型——我在下面解释了为什么这不起作用:

这是简化的模型构建器:

这不起作用的原因是 EF4不允许FK 属性兼作 TPH 鉴别器。这意味着 Type 不能既是鉴别符又是外键字段。尝试在 HasConstraint 方法中为每个实体硬编码职业类型也不起作用——这会产生异常。

一个可能的解决方案是向 Profession 添加一个代理键,去掉 Qualification 中的 Type 属性并将其替换为 ProfessionId FK。这将消除冗余问题,但也会破坏 TPH。实际上,鉴别器从资格转移到职业。这里的问题是我还没有找到映射许可证和证书对象的方法。也许我可以映射到视图?但是我如何在 Code First 中做到这一点?

所以,现在我面临着许多令人不快的选择。有什么建议么?