问题标签 [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.
c# - 来自 ObjectContext 的 EntityFramework EntityType?
我有一个带有这个签名的方法:
public void GenerateLog<TEntity>(TEntity entity) where TEntity : EntityObject
如何遍历我的 ObjectContext 并为我的 ObjectContext 中的每个实体调用它?
我知道我可以这样做:
但我不知道如何从名称的 String 表示形式转到GenerateLog<MYSTRING>
而不是GenerateLog<TEntity>
.
c# - 与保存时间有关的实体框架问题
我有一个具有 ObjectContext 的对象。该对象的 OnSave 我正在使用该 ObjectContext 运行一个操作,如下所示:
在我的“GenerateLog”方法中,我将我的实体从 ObjectContext 中分离出来(这样它就可以在不经过所有延迟加载的对象的情况下变成二进制对象)。
变成二进制对象后,我创建了另一个保存二进制数据的对象(不同类型的)。我打电话this.ObjectContext.AddObject('TableName', myNewObject);
。
然后我在我之前分离的对象上调用它(entityState 是实体的先前状态):
此时,代码从上面返回到 SaveChangesAction 方法。这些对象现在都不在我的 ObjectContext 中,因此它们都不会保存到我的数据库中。
我知道我已经通过修改影响它们的 ForEach 中的对象做了一些坏事,但是考虑到这是我需要在保存 ObjectContext 之前运行的代码,我不知道该怎么做。
asp.net - 在 1 次查询执行后处理的每个 http 请求的 ObjectContext 实例
我正在考虑将 ObjectContext 放在 HttpContext.Current 中,以便同一请求中的所有逻辑都可以访问它,而不必每次都打开/销毁。在 ObjectContextManager 类中我创建了这个。
然后我每次对当前请求执行查询时调用这个静态属性。
但是当它尝试执行第二个查询时它会被处理掉。你能告诉我哪里出错了吗?
c# - EF4.0 - 有没有办法在调试期间查看哪些实体附加到什么 ObjectContext?
这是我的问题的延续。
我正在尝试使用Julie Lerman 几个月前给我的解决方案。我目前正在使用以下内容生成预先附加到我的 ObjectContext 的新游戏实体:
在存储库中,我尝试将游戏附加到 OC,并将其状态设置为“已添加”,就像她建议的那样,执行以下操作:
现在,为了清楚起见,这是我的控制器的完整构造函数:
如您所见,_gameRepository 应该是相同的,因为它是在控制器构造上创建的。反过来,这意味着 _gameRepository 的 OC 对于游戏和平台应该是相同的。然而,在这种情况下,我仍然遇到一个例外情况:
无法定义这两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象。
肯定会发生一些奇怪的事情,这就是为什么我想知道我是否真的可以追踪实体实际附加到哪个 ObjectContext。它们都应该附加到同一个 OC,但例外情况除外。
也许这与我使用 Ninject(香草版本,而不是MVC 定制版本)在控制器中注入存储库有关。无论问题是什么,它似乎都不是显而易见的。任何帮助将不胜感激。
编辑:存储库的 ObjectContext:
Ninject 绑定:
c# - 针对刚刚插入 ObjectContext 的实体运行代码的可靠方法?
每次将实体插入我的数据库时,我都有一些代码需要运行,问题是此代码需要实体 PrimaryKey。
我发现我可以使用 EntityState.Unchanged 从 ObjectStateManager 获取实体,这是插入后的对象,但我不确定这是否始终是 ObjectContext 中唯一以“Unchanged”作为其 EntityState 的对象。
是否有可靠的方法仅针对刚刚插入 ObjectContext 的对象运行代码?
c# - 如何将 EF Code First DbContext 绑定到 Asp.Net 数据源?
我创建了以下内容Context
以与Entity Framework Code First一起使用:
现在我想Context
在 Asp.Net 应用程序中使用它来使用GridView
. 我需要创建一个DataSource
来做数据绑定。我该怎么办?
ASP 部分如下所示:
entity-framework - 如何在 EF 4.1 中遍历我的 dbcontext 实体?
我正在使用 ASP.NET 实体框架 4.1 MVC 3 (C#)
我想遍历我的 DbContext 中的所有实体。我需要能够动态引用我的实体才能制作动态视图。
我读过 Lerman 的书、两本 MVC(2 和 3)书、msdn、asp.net 等。也许我只是遗漏了一些东西?
似乎您可能必须使用 ObjectContext 才能访问实体。如果这是正确的方法,我肯定不知道该怎么做。请帮忙。谢谢你。
wcf - 调试自跟踪实体 - 由于对象的键值与 ObjectStateManager 中的另一个对象冲突而导致的 AcceptChanges 异常
将更改保存到自我跟踪实体时发生异常:
我相信该问题已在其他问题中得到解决,例如:自我跟踪实体 - AcceptChanges 无法继续,因为对象的键值与 ObjectStateManager 中的另一个对象冲突
我的问题是在开发和生产中调试此问题的最佳方法是什么。是否有任何可以捕获/访问的进一步信息,这些信息将详细说明导致异常的实体或实体类型。
如果不是,我是否必须编写一些东西来遍历对象图以查找引用不同对象的重复键?如果是这样,有人有这方面的经验吗?
更多信息:
我的场景涉及以下内容 - 客户端通过 WCF 服务检索一个实体,该服务包含更多实体的集合,所有这些实体都具有与其他实体的各种 FK。这些 FK 关系都包含在 linq 查询中,因此我们有一个完整的对象图。
客户端中的视图使用以前获取的静态数据实体,例如查找表以提高性能。如果我们对 User 说一个带有 FK 的 Customer 对象,它将在从服务中检索时加载。如果我们现在将另一个实体添加到对象图中,例如 Order 并在该对象上设置一个 User 属性,该属性与 Customer 对象中的 Id 相同,但该实体是在不同的点检索到的,因此使用不同的 ObjectContext(即对象具有相同的 ID 但不是对象的相同实例)我收到此错误。
指向另一个问题的链接演示了避免这种情况的方法,但我希望找到有关哪些实体导致问题的更多信息,以便我可以追踪错误。
visual-studio - 在代码或应用程序加载时刷新/重新创建 EF 对象上下文
在代码中,有没有办法在 Visual Studio 中的 add New Item --> Entity Data Model 下创建对象上下文时做什么?
例如,我在数据库中添加了一个新表。下次我加载使用该数据库模型的应用程序时,它会刷新模型并自动为该新表创建默认概念映射。
我可能会使用 ESQL 来查询数据库而不是 LINQ-To-Entities,所以我不在乎是否有对新实体集/对象的强类型访问。
此外,此解决方案是否首先需要EF 代码?
entity-framework-4 - 如何从 EF Code First 上下文中分离实体
这似乎比它应该做的要困难得多。
我正在使用 MVC3、SQL Compact Edition 和 Entity Frameworks Code First 编写一个事件注册站点,并使用 Steven Sanderson 的 Mvc Scaffolding NuGet 包。
由于事件列表不太可能发生太大变化,因此我将其缓存到 Application_Start 方法中的全局列表中:
其中 RaceEventRepository 是由 MvcScaffolding 构造的存储库类,并执行
然后在整个存储库中使用它,并且(我假设)在处置存储库时处置。EventRaces 是一个全局可用的列表。
我的问题是,当我使用外键创建注册人记录时,该记录返回存储在 EventRaces 中的 RaceEvent,我收到错误消息“IEntityChangeTracker 的多个实例无法引用实体对象”。
根据几篇博客文章和 SO 答案,我需要从上下文中分离缓存的实体,如本文的清单 1 所示。
我的问题是,使用 ObjectBrowser,我无法使用 Detach 方法找到任何东西。存储库中的上下文没有。上下文中的各个 DbSet 没有一个(尽管它们有一个 Attach() 方法)。System.Data.Object.ObjectSet 有一个,但我找不到 DbSet 和 ObjectSet 之间的映射。
显然,我错过了一些东西。有人可以指出我正确的方向吗?