问题标签 [objectcontext]

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 投票
2 回答
572 浏览

logging - ObjectStateEntry 的状态的奇怪行为

我有以下扩展方法,我不确定为什么在我调用entry.AcceptChanges()一个条目后每个条目状态都更改为未更改。

我做错了什么吗?

0 投票
2 回答
872 浏览

asp.net - 如何使用 linq to sql 和 ef 查询导航属性

我正在尝试使用 linq to sql强烈键入3 个 ef 对象的查询。产品和类别之间存在一对多的关系。我的类包含导航属性,看起来像这样。

试图避免基于字符串的 .Include(),我将如何构造一个返回等于 ProductID“1”但还包括产品名称和类别名称的查询?

就像是:

我可能错过了穿过森林的树木,但我似乎无法获得 ObjectContext.LoadProperty 的语法(如果这是正确的方法)。

有什么想法吗?谢谢。

0 投票
4 回答
4779 浏览

entity-framework - 确保实体框架总是从数据库中读取?

我有这个应用程序,它实际上是两个应用程序,一个 web 应用程序和一个控制台应用程序。控制台应用程序用作 Windows 机器上的计划任务,每天执行 3 次以执行一些重复性工作。两个应用程序都使用相同的模型和存储库,它们放置在单独的项目(类库)中。问题是,如果控制台应用程序需要对数据库进行一些更改,它会更新模型实体并将更改保存到数据库,但是当这种情况发生时,webbapplication 中的上下文不知道这一点,因此对象上下文不会被刷新新的/更新的数据和应用程序的用户看不到更改。

我的问题是:有没有办法告诉 objectcontext 总是从数据库中加载数据,无论是在洞 objectcontext 上还是针对特定查询?

/问候文布拉德

0 投票
1 回答
2869 浏览

entity-framework - EF 4:使用 POCO 时出现理解 DetectChanges 的问题(无自跟踪 ObjectContext)

我想知道是否有人可以帮助我?

我无法理解为什么我需要在我的 POCO(非代理)实体上发出 DetectChanges。

当然,我有这条线来确保不返回代理。

并且做一些研究,如果我需要检查对象的“状态”,那么我需要发出 detechChanges 但是为什么我需要检查对象的状态?

基本上,我将我的 POCO 实体发送到将数据保存到新 ObjectContext 的方法(我在每个方法上创建和销毁 ObjectContext)

因此,我在理解为什么需要 ObjectContext 跟踪或了解更改时遇到问题?

是不是因为如果它不知道如果不会被保存?

也许我错过了通知,但似乎如果我使用现有的 ObjectContext(我不是我每次都在创建和销毁)确保 ObjectContext 知道将是有益的,但否则不是?

所以在一种方法中,我通过创建一个新的数据上下文来更新一个对象,将其保存到数据库并销毁 ObjectContext 。因此我没有使用两种方法,一种方法发送更新或新记录,然后另一种方法用于保存。

我真的很感激为什么需要它的任何快速解释?

提前致谢

0 投票
2 回答
1097 浏览

nhibernate - 在 EntityFramework 生成的每个查询之前执行 SQL 存储过程

每次查询我的 ObjectContext 之前,我都需要执行一个 SQL 存储过程。我想要实现的是将 设置CONTEXT_INFO为稍后将与我的大多数查询一起使用的值。

有没有人这样做过?那可能吗?

[编辑]

目前,我通过打开连接并在我的 ObjectContext 构造函数中执行存储过程来实现这一点,如下所示:

然后在我的集成测试中:

但这需要我保持连接打开 - 这很容易出错,因为我总是需要 CONTEXT_INFO,而另一个开发人员可能很容易做到:

以上意味着我可以像在我的测试中那样编写代码,并且一切都是绿色的(耶!)但是我的同事在他的业务逻辑的某个地方使用了来自 TestMethod2 的代码,这一切都搞砸了——而且没人知道在哪里以及为什么所有测试都是绿色的:/

[编辑2]

这篇博文当然没有回答我的问题,但实际上解决了我的问题。也许使用 NHibernate 会更适合我的目的:)

0 投票
1 回答
660 浏览

asp.net - 多个实体框架模型和对象上下文

我有一个使用实体框架的 asp.net Web 应用程序。应用程序数据层使用由 Jordan Van Gogh 概述的方法,可在此处找到。 简而言之,此方法对每个 http 请求使用一个共享 objectcontext 实例,并使用继承 IHttpModule 的 AspNetObjectContextDisposalModule 进行处理。

我添加了另一个项目,一些额外的表,并设置了一个数据层,将我上面描述的示例(完全)复制到我的应用程序中。这个额外的项目和随后的不同数据模型都可以完美运行。我可以使用 2 个数据层执行不同的操作,但似乎没有任何后果。当然,对象集在 2 个数据层中是不同的,因为它们代表不同的表。

我的问题是这样的:

这种方法是个好主意吗?我了解了幕后发生的大部分事情,但是这两个模型都使用 System.Data.Objects.ObjectContext。如果用户 A 使用第一个数据层执行操作,同时用户 B 使用第二个数据层执行操作,“共享”对象上下文是否会出现问题?

谢谢。并且要温柔。

编辑 注意:我使用不同的 oc 键

0 投票
1 回答
731 浏览

asp.net - EF4 - 将对象添加到对象上下文而不进行保存更改

我有一个像 Order - Order lines 这样的页面。Order 由一些文本框和 ddls 表示,Order lines 由 GridView 表示。

我想让用户添加订单行而不保存对数据库的更改。例如:他添加了 4 个订单行,填写订单信息,然后点击保存按钮。只有在那一刻,所有信息都应该保存到数据库中。

当我使用类似的代码时

新创建的 OrderLine 没有出现在我的对象上下文中,因此我无法访问它并将 GridView 绑定到新的 OrderList 集合。

我怎么解决这个问题?或者也许还有其他方法可以执行此任务?

谢谢。

0 投票
1 回答
1184 浏览

entity-framework-4 - 在层之间传递实体对象的正确方法?

我刚刚学习了实体框架,并且在将它与我的分层代码结构结合起来方面取得了一些不错的进展。我有 2 个可视层,一个业务层和一个数据访问层。

我的问题是在层之间传递实体对象。此代码示例不起作用:

我收到错误消息ObjectContext 实例已被释放,不能再用于需要连接的操作。

如果我从 GetActiveUsers 方法中删除using ,它可以正常工作。

我知道这是危险的做法,因为 GC 可以在任何给定时间处理上下文并搞砸我的 BLL。

那么,在层之间传递信息的正确方法是什么?我是否也需要传递上下文?

0 投票
6 回答
1078 浏览

asp.net-mvc - 上下文到底是什么?

我开始在任何地方看到上下文。在 ASP.NET MVC 中,有 ControllerContexts、RequestContexts、HttpContexts、FormContexts。在实体框架中,您有 ObjectContexts 和 DbContexts。Ninject 有 Ninject.Activation.IContext。

上下文到底是什么?

0 投票
1 回答
645 浏览

c# - 在实体框架中将对象树附加到对象上下文

我有一个具有以下三种类型的 EDM:Foo、Bar 和 Foob。Foob 是 Foo 的子类。Foo 有一组 Bar 实体。Bar 有一个 Foo 实体的集合。我想向集合中添加一个新的 Foo 对象,以及它的 Bar 和关联的 Foob 对象。这样以下代码将起作用:

但是上面的代码给了我下面的异常:

System.Data.SqlClient.SqlException:无法在具有唯一索引的对象“dbo.tblFoo”中插入重复的键行。