问题标签 [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.
asp.net-mvc - 带有 ASP.NET MVC 的实体框架。更新实体问题
我也在尝试更新实体及其相关实体。例如,我有一个带有属性 Category 的类 Car,我想更改它的 Category。所以,我在Controller中有以下方法:
ObjectContext 类中的 UpdateCar 方法如下:
问题是,当我在控制器中的 POST 之后设置 Category 属性时,实体状态更改为已添加,而不是保持为已分离。
如何在不设置所有属性的情况下更新与 Entity Framework 和 ASP.NET MVC 的一对一关系,就像这篇文章一样?
c# - 如何即时将 DataSet 对象转换为 ObjectContext(实体框架)对象?
我有一个现有的 SQL Server 数据库,我在其中存储来自大型特定日志文件(通常 100 MB 或更多)的数据,每个数据库一个。经过一番分析,数据库再次被删除。
从数据库中,我通过 Visual Studio 设计器创建了一个实体框架模型和一个数据集模型。DataSet 仅用于批量导入数据SqlBulkCopy
,经过相当复杂的解析过程。然后使用实体框架模型完成所有查询,其CreateQuery
方法通过这样的接口公开
现在,有时我的文件非常小,在这种情况下,我想省略导入数据库,而只是在内存中表示数据,可以作为实体访问。这个想法是创建 DataSet,而不是批量导入,而是直接将其传输到可通过接口访问的 ObjectContext。
这有意义吗?
现在这是我到目前为止为这个转换所做的:我遍历 DataSet 中的所有表,将单行转换为相应类型的实体,并将它们添加到我的类型化 Entity 上下文类的实例化对象中,就像这样
一项非常乏味的工作,因为我需要为我的每个实体类型创建一个转换器并遍历我拥有的 DataSet 中的每个表。当心,如果我改变我的数据库模型......
MyEntities
另外,我发现,如果我向 SQL Server 数据库提供有效的连接字符串,我只能实例化。由于我不想每次都真正写入我完全成熟的数据库,这阻碍了我的意图。我打算只有一些内存代理数据库。
我可以做得更简单吗?是否有一些自动化的方式来进行这种转换,比如从 DataSet 对象中生成 ObjectContext?
PS:我看到了一些关于单元测试的问题,这些问题似乎有些相关,但并不完全准确。
entity-framework - EF4 - 可以模拟 ObjectContext 进行单元测试吗?
不使用 TypeMock Islolator 可以吗?我在网上找到了一些建议,例如传入仅元数据的连接字符串,但是除了 TypeMock 之外我遇到的任何东西似乎都没有真正允许可以注入服务以进行单元测试的模拟 ObjectContext。我应该为 TypeMock 支付 $$,还是有其他选择?没有人设法创建与 TypeMock 类似的开源软件吗?
c# - 如何将对象的跟踪信息从 ObjectContext 更改为另一个?
我有一个对象被添加到 objectContext ..
经过一些操作后,我需要将它传递给同一数据库的另一个对象上下文,但我总是面对这个消息:
一个实体对象不能被多个 IEntityChangeTracker 实例引用。
我需要更改跟踪信息,将其与旧对象分离并将其附加到新对象上下文中。
但在新的范围内,我不拥有旧的 objectContext 来分离它
我的问题:如何将此对象的跟踪信息更改为新的 ObjectContext?
entity-framework - 通过实体框架添加“产品”的 3 种方法。有什么不同?
阅读这篇题为“使用 ObjectSet(实体框架)”的 MSDN 文章,它展示了两个关于如何添加产品的示例。一个用于 3.5,另一个用于 4.0。
http://msdn.microsoft.com/en-us/library/ee473442.aspx
由于我缺乏知识,我可能在这里完全遗漏了一些东西,但我从未添加过这样的产品:
我不会这样做,只是使用:
这三种方式有什么区别?
“我的方式”只是另一种使用 ObjectQuery 的方式吗?
谢谢,科汉
nhibernate - 实体框架中的合并功能?
在 NHibernate 中有一个合并函数,它执行以下操作:
- 如果存在与当前会话关联的具有相同标识符的持久实例,则将给定对象的状态复制到持久实例上
- 如果当前没有与会话关联的持久化实例,尝试从数据库中加载它,或者创建一个新的持久化实例
- 返回持久实例
这在EF中可能吗?我的意思是这部分:将给定对象的状态复制到持久实例上。如果我使用 ApplyCurrentValues 它似乎是更新行为?
.net - ASP.Net 实体框架,对象上下文错误
我正在构建一个 4 层的 ASP.Net Web 应用程序。这些层是:
- 数据层
- 实体层
- 业务层
- 界面层
实体层具有我的数据模型类,并且是使用 T4 模板 (POCO) 从数据层中的我的实体数据模型(edmx 文件)构建的。实体层在所有其他层中被引用。
我的数据层有一个名为 SourceKeyRepository 的类,它的功能如下:
延迟加载被禁用,因为我不希望我的查询在此应用程序的其他层中运行。尝试访问 UI 层中的信息时收到以下错误:
ObjectContext 实例已被释放,不能再用于需要连接的操作。
我确定这是因为我的 DataModelContainer "dmc" 被处理掉了。如何从我的数据层返回此 IEnumerable 对象,使其不依赖于 ObjectContext,而仅依赖于 DataModel?
有没有办法限制延迟加载只发生在数据层?
.net - .Net Entity objectcontext线程错误
我有一个 n 层 asp.net 应用程序,它从我的 DAL 返回一个对象到 BAL,如下所示:
此结果通过我的业务层并到达 UI 层以显示给最终用户。我不会延迟加载以防止在我的应用程序的其他层中执行查询。
我在 DAL 中创建了另一个函数来删除对象:
当我在调用“Get”函数后尝试调用“Delete”时,收到此错误:
不允许新事务,因为会话中还有其他线程在运行
这是一个 ASP.Net 应用程序。我的 DAL 包含一个实体数据模型。我拥有上述函数的类共享相同的 _dataContext,它在我的构造函数中实例化。我的猜测是阅读器仍然从“获取”功能打开并且没有关闭。我怎样才能关闭它?
在我的 UI 层中,我遍历结果并尝试像这样删除它们:
编辑
此行发生错误:
asp.net-mvc - 为什么 ExecuteFunction 方法只能通过 ObjectContext 的子类中的 base.ExecuteFunction 获得?
我正在尝试从我站点存储库中的 objectcontext 对象调用 ObjectContext.ExecuteFunction。
存储库是通用的,所以我所拥有的只是一个 ObjectContext 对象,而不是一个实际代表我的实体框架中的特定对象的对象。
下面是使用 ExecuteFunction 方法生成的代码示例:
但我想做的是这样的......
任何人都知道为什么我必须打电话ExecuteFunction
而base
不是_ctx
?
另外,有没有办法像我写的那样做?我真的很想保持我的存储库通用,但是由于必须执行存储过程,它看起来越来越困难......
更新:这是我尝试过的方法,但该方法没有出现在智能感知中/当我尝试使用它进行编译时它给了我一个错误
谢谢,
马特
entity-framework - Entity Framework 4.0 的函数导入和存储库模式
在针对 EF 4.0 使用存储库模式时,谁能告诉我他们如何实现函数导入的使用?
我们有一个映射到候选实体的表,还有一个从映射到候选实体的现有存储过程中导入的函数。这在 EF 中效果很好,但我们通过使用 Repositories 进行抽象,该 Repositories 采用其构造函数 IObjectSet,其中 T 是 POCO 实体。但是,这意味着我无法获得对函数导入的引用。我能看到的唯一方法是将 ObjectContext 的引用传递给需要它的存储库,但这对我来说感觉有点设计味道。
即使我们的几个存储库使用自定义接口进行了扩展,我们仍然面临同样的问题。
非常感谢任何建议。