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

entity-framework-4 - 与 EF CTP4 映射一对多关系的问题

我正在尝试定义类别和项目之间的一对多关系(一个类别可以有一个或多个项目,一个项目可以有一个或没有类别)

我已经定义了以下映射:

现在,虽然这似乎工作正常,但 EF 仍在生成 Categories_Products 表(用于多对多关联)。

我已禁用默认数据库初始化程序,但仍在生成此表。我究竟做错了什么?

谢谢本

0 投票
2 回答
838 浏览

c# - IObjectSet 包含 CompiledQuery 的扩展方法错误

在我的自定义 ObjectContext 类中,我将实体集合公开为 IObjectSet,因此可以对它们进行单元测试。当我在编译查询中使用此 ObjectContext 并调用“包含”扩展方法时遇到问题(来自 Julie Lerman 的博客http://thedatafarm.com/blog/data-access/agile-entity-framework-4- repository-part-5-iobjectset/)和她的书《编程实体框架》第 2 版第 722-723 页。这是代码:

询问:

延期

LINQ to Entities 无法识别方法 'System.Linq.IQueryable1[MyPocoObject] Include[MyIncludedPocoObject](System.Linq.IQueryable1[MyPocoObject], System.String)' 方法,并且此方法无法转换为存储表达式。

如果我在 ObjectSet 集合而不是 IObjectSet 上使用相同的查询,它可以正常工作。如果我只是在不预编译的情况下运行此查询,它就可以正常工作。我在这里想念什么?

0 投票
2 回答
3319 浏览

entity-framework - EF Code First 不返回相关对象

我将 EF Code First 与预先存在的数据库一起使用。

两个对象:

FooId和都是BarId数据库中的主键,Bar表中有一列FooId是指向Foo表的外键。

当我选择 aBar时,Foo是一个空引用。我原以为EF会自动将它们两个拉到一起,但也许我错过了什么?

数据库映射:

0 投票
1 回答
13999 浏览

c# - 如何在实体框架代码中首先建立多对多关联

我刚刚开始使用 EF,并且观看了一些很棒的教程视频。我坚持以下。

我有一个文件集合类,我希望这些文件与事件和/或人相关联

现在,当我生成数据库时,我的文件表有一个 PersonID 和 EventID。

我希望能够让用户将文件附加到人员和/或事件。

0 投票
3 回答
29411 浏览

entity-framework - 为什么我的 DbContext DbSet 为空?

我创建了一个新的 Entity Frameworks Code First 应用程序,并且 DbSet (People) 返回 null。

web.config : 连接字符串

现在当我打电话

_repo.People将为空

我错过了什么?

  • 引用了 Microsoft.Data.Entity.Ctp.dll
  • 我尝试过使用和不使用数据库初始化程序。
0 投票
1 回答
1160 浏览

entity-framework - EF CTP 4 数据库名称配置

对于示例,我正在使用此连接字符串:

然后我在 Application_Start() 中使用它:

在我的数据库中,我得到了这个非常奇怪的新数据库: MyAppNamespace.Models.PicturesCatalog 有两个表dbo.EdmMetadatadbo.Pictures

表很好,但为什么不使用这些表创建一个名为PicturesDatabase的新数据库(如连接字符串)?

我试过几次删除这个表,我确实尝试过创建 PicturesDatabase 并使用它......但它仍然会生成这个 MyAppNamespace.Models.PicturesCatalog。它有什么问题?我该如何解决?

0 投票
7 回答
17421 浏览

c# - EF4 代码优先导致 InvalidOperationException

每次构建时尝试运行我的项目时遇到问题。初始化程序似乎在运行,但是当涉及到第一个查询时 - 它会随着以下InvalidOperationException.

作为参考,我使用的是直接使用 NuGet 导入的 EF Code First CTP4。连接到 SQL Server 2008 R2

如果有任何模型修改,我想要重新创建数据库,并为查找表添加一些值。这两件事似乎都得到了开箱即用的支持*。

我的设置是这样的:

全球.asax

核心数据库.cs

当它运行时,它会死在与此类似的行上,这基本上是它在创建数据库后遇到的第一个查询。

我认为不是的事情:

  • 这不是权限:我已经删除了 SQL Server 中的实际数据库本身。应用程序大约在尝试运行该查询的同时重新创建它(初始化程序已设置,然后显然它会推迟创建直到需要它)。我还以我的 Web.config 中指定的用户身份登录到 SQL Server,并且他们对数据库具有完全的读/写访问权限。事实上,他们可能应该这样做,因为该帐户也创建了数据库。
  • 正在创建数据库:删除数据库并自动重新创建。
  • 连接字符串已正确定义,包括providerName属性。

<add name="CoreDB" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=TheDatabase;User Id=TheUsername;Password=ThePassword;" providerName="System.Data.SqlClient" />

  • 这似乎不是我的代码/逻辑中的错误,因为一旦查询成功失败,代码将正常启动,直到下一次重建应用程序。这显然是可能的,而且无论如何我可能都必须在我的代码中应用解决方法。:)

该怎么办?

理想情况下,我想“不要考虑数据库模式”。我希望它看起来像Scott Gu 的优秀博客文章(以及使用现有数据库的后续工作)中的那样,事情刚刚解决并消失了。在大多数情况下,这是真的。这似乎是连接在某些时候没有关闭的问题,但我不知道如何解决这个问题。

一些论坛/ SO帖子确实暗示我遇到的问题基本上是因为初始化程序没有完全按计划工作并且连接可能保持打开状态。其他地方的解决方案似乎只是“不要创建自己的初始化程序”,这不是最好的解决方案 - 但除非有人有任何想法,否则我可能不得不在 CTP5 之前这样做。

*是的,我知道这是一个 CTP,所以“支持”可能不是这个词 :)

0 投票
0 回答
303 浏览

ctp4 - EF4 CTP4 Code First 中具有附加有效负载列的联结表

我有以下表格:

WOPartList(定义具有 1 个或多个 Part_Size 的部件) WOPartSize(定义具有 1 个或多个 Part_Size 的大小)

Part_Size(连接表作为 addt 有效负载列,例如 sku、on_hand 等...)

以下是 DAL 的 POCO 类:

如何配置联结表?注释?流畅的 API ? 我的主要麻烦是在联结表中获取额外的有效负载字段...否则我只会让 EF 为我生成表并且没有 POCO 类...

0 投票
1 回答
661 浏览

entity-framework-4 - 使用 C# 和实体框架 CTP 4 的域建模问题

我正在尝试建模一个包含照片集的相册。每个相册都有一组照片和一张拇指照片。这就是我所拥有的,但 EF 似乎不喜欢它:

我错过了什么或者这看起来对吗?我希望 EF 在我的数据库中生成一对多,但它会不断在相册和照片(Album_Photos)之间创建一个参考表,但这不应该是多对多。任何帮助都会很棒。