问题标签 [entity-framework-ctp5]

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 回答
582 浏览

.net - EF CTP5 自动创建表 SQL Server 2005

我一直在使用 EF 4 CTP5 并关注 scottgu 博客文章:http ://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx

基本上,如果模型丢失,我希望模型为我生成表。

就我而言,它抱怨存在无效的数据库对象,那是因为我还没有表。我使用的是 SQL Server 2005,而博客中提到了 sql express 或 ce。

我想要创建表的模式,该功能仅适用于 sql express 和 CE 吗?

提前致谢

0 投票
1 回答
1150 浏览

c# - EF4 CTP5 Code First 中的级联删除对子记录执行更新

使用此处描述的方法,我正在尝试删除父记录和所有关联的子记录。但是,发生的情况是父项按预期删除,但子记录键字段更新为 NULL 而不是被删除。

我还将子表外键的Delete Rule设置为Cascade,在SQL Server Management中从父表中删除按预期执行了级联删除。

我首先遵循这个演练,并修改代码以执行删除。

这是代码:

有什么我想念的吗?还是孤儿记录了预期的结果?

0 投票
1 回答
8183 浏览

sql-server - 实体框架 CTP5 - 如何调用存储过程?

这可能是一个简单的答案,但我看不到如何使用 EF CTP5 执行存储过程。

在 Entity Framework 4.0 中,我们这样做了:

ExecuteFunction("ContainerName.StoredProcName", new ObjectParameter("Id", id)).

这是ObjectContext.

但是DbContext没有这样的方法。

我们如何调用存储过程?EF CTP5 不支持吗?

编辑:

我找到了这个线程,它指出你需要这样做:

这引起了一些担忧:

1)您现在正在调用 set 上的存储过程而不是context。存储过程应该在上下文范围内可用,而不是绑定到特定的实体集。就像它们在 SQL Server 中的“数据库”下而不是在“表”下一样。

2)复杂类型呢?我以前有一个从存储过程返回的复杂类型。但是现在,您似乎必须直接映射到实体?这没有任何意义。我有许多存储的过程,它们返回的类型不是由 ObjectSet/DBSet 直接表示的,我不知道如何才能将其拉过来。

希望有人可以为我解决这个问题,因为据我所知,我将无法升级到 CTP5。

0 投票
1 回答
709 浏览

c# - Entity Framework CTP5 Code First:使用非原始类型作为键

我有一个项目,它有很多数据结构,我想在其中引入一个数据库。我正在研究 Entity Framework CTP5 的代码优先功能。

现在,我为我的每种类型使用了不同的标识符类型(例如 TypeAIdentifier、TypeBIdentifier 等)。这很好,因为它在使用这些标识符时允许类型安全。问题是我似乎无法让 EF 使用非原始类型作为标识符。http://blogs.msdn.com/b/efdesign/archive/2010/03/30/data-annotations-in-the-entity-framework-and-code-first.aspx中有提示:

实际上,以下程序会引发异常:

奇怪的是,这个程序抛出了一个 MissingMethodException (“没有为此对象定义无参数构造函数”),但我确信这与 KeyAttribute 有关,因为以下任一情况都会使程序运行:

  1. 删除[键];或者
  2. 将 [Key] 移动到 IntValue。

如何让 EF 将我的标识符类映射为 PK?想到的两个选项:

  1. 想办法让 EF 使用非原始类型作为 PK。
  2. 将“int”作为 PK 并让 EF 将此“int”转换为 MyIdentifier(这样做的缺点是,如果我决定使用“int”以外的其他东西,我将不得不同时更新 MyIdentifier 和映射,但它至少会让我保持标识符类型的安全性)。我认为 Function Imports 会让我这样做,但它似乎是建立在存储过程之上的。

有没有办法做到这一点?

0 投票
1 回答
8532 浏览

entity-framework - EF CTP5 - 强类型急切加载 - 如何包含嵌套导航属性?

试图将我们的 EF4 解决方案转换为 EF CTP5,但遇到了问题。

这是模型的相关部分:

在此处输入图像描述

相关关系: - 一个多个城市 - 一个城市有一个

现在,我想执行以下查询: - 获取系统中的所有县,并包括所有城市,以及这些城市的所有州。

在 EF4 中,我会这样做:

在 EF CTP5 中,我们有一个强类型的 Include,它需要一个Expression<Func<TModel,TProperty>>.

我可以毫无问题地为县获得所有城市:

但是我怎样才能获得这些城市的状态呢?

我使用的是纯 POCO,所以County.CitiesICollection<City>,因此我不能这样做:

AsICollection<City>没有名为 的属性State

这几乎就像我需要使用嵌套的 IQueryable。

有任何想法吗?在这种情况下,我是否需要回退到魔术字符串 Include ?

0 投票
1 回答
1807 浏览

entity-framework-4 - EF4 CTP5 - HasColumnType 不起作用

我想将我的字符串列之一的默认 nvarchar(4000) 覆盖为 SQL Express 中的文本数据类型。我使用此代码。

但是列类型仍然是 nvarchar?

我也在这里问http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/a1d84ea9-2f8e-42f0-bb83-ac9f68805d6d?prof=required

0 投票
2 回答
1735 浏览

entity-framework - EF Linq 到实体查询为 TPC CTP5 代码优先实体生成 UNION

我有以下实体:

我正在使用 Table Per Concrete Type (TPC) 配置实体,以生成 User 表和 HappyUser 表。我希望 HappyUser 表包含 User 类的属性,并且我不希望这两个表之间有任何关系。

我将实体配置如下:

表生成正确,但是当我查询表时,EF 在 User 和 HappyUser 表上生成一个 UNION。查询如下:

用户的 SQL 生成一个 UNION。这不是我所期望或想要的。我想简单地从用户表中检索行。

HappyUsers 的 SQL 按预期工作。

任何想法我做错了什么?或者这是 EF 的缺陷?

0 投票
1 回答
1025 浏览

entity-framework-4 - CTP5 POCO Code-Only,如何将主从记录添加到数据库

我正在尝试 EF CTP5 POCO,并从 EF4 EntityModel 转换为 POCO 仅代码方法。

所以将我的旧代码从 EF4 模型转换为 POCO,我应该添加新的发票和行。我曾经创建主类并将详细信息添加到主类本身的实例中。

inv.Lines <== 此时为空,所以我不能在发票本身的实例中添加一行我应该创建 InvoiceLines 的集合并设置它,还是有其他方法可以做到这一点。

简而言之,我如何使用 POCO 代码 (CTP5) 将主/明细行添加到我的数据库中。

0 投票
2 回答
28011 浏览

entity-framework - 使用代码优先 EF CTP5 生成货币类型字段

在这篇博文中:EF4 Code First Control Unicode and Decimal Precision, Scale with Attributes中,Dane Morgridge使用属性来控制数据库上不同类型的创建。

...我发现这个非常独特的顺便说一句!

如何使用 EF CTP5 的代码优先 API 在生成的数据库中生成货币类型字段,如果可以从您的模型中使用约定或属性来生成?

对不起,我的英语不是我的主要语言。

提前致谢。

0 投票
3 回答
313 浏览

c# - 如何使用存储库模式(或更合适的方式)来实现这一点?

我有一个名为:IChocolateRepository 的存储库

它派生自通用存储库接口 IRepository<>,它定义了基本存储库功能(FindAll、Delete、Add 等)

现在,我需要编写一段代码,它将删除“数据库中所有巧克力在提供的日期之前的到期数据”(假设 ExpiryDate 是 Chocolate 模型类上的一个不可为空的属性。)

这是否属于存储库?

另外,示例实现会是什么样子?(我使用的是EF CTP5)