在Entity Framework 6中使用来自多个线程的单个上下文

用户名

有没有一种方法可以在不同线程中异步使用一个dbContext?

 var context = new Entities();
 Task.Factory.StartNew(() => context.Companies.Include(x => x.Address).First());
 Task.Factory.StartNew(() => context.Companies.Include(x => x.Owner).First());
 //after some changes...
 context.SaveChanges();
 context.Dispose();

主要思想是立即保存所有内容,如果某些操作无法返回所有更改,则保存所有内容。实际上,我使用的是传递给viewmodel及其子viewmodel的工作单元对象,因此它们尝试异步获取信息...上面的代码说明了问题。上面的代码将引发异常:

EntityFramework.dll中发生类型为'System.InvalidOperationException'的异常,但未在用户代码中处理。创建模型时无法使用上下文。如果在OnModelCreating方法内部使用上下文,或者多个线程同时访问同一上下文实例,则可能引发此异常。注意,不能保证DbContext和相关类的实例成员是线程安全的。

主要问题是,如果我想使用多个DbContext实例,则每个数据传输对象将包含字段的不同信息。有什么建议么?谢谢!

格特·阿诺德

上下文不是线程安全的。期。因此,永远不要从多个线程访问上下文,也不要跳过箍来尝试使其成为线程安全的。

您可以简单地将代码包装在中TransactionScope,然后Task以创建其自己的上下文并保存其更改的操作开始每个代码

using (var tran = new TransactionScope())
{
    Task.Factory.StartNew(() => DoSomething());
    Task.Factory.StartNew(() => DoSomethingElse());
    // Wait all
    tran.Complete();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

可以在单个TransactionScope中使用多个Entity Framework数据上下文吗?

来自分类Dev

可以在单个TransactionScope内使用多个Entity Framework数据上下文吗?

来自分类Dev

使用多个Entity Framework上下文并行查询

来自分类Dev

使用Entity Framework 6的多个上下文,跨dbcontexts引用了多个实体

来自分类Dev

来自WCF数据服务的Entity Framework 6数据上下文

来自分类Dev

在Entity Framework中使用DbSet而不是IDbSet模拟数据库上下文类

来自分类Dev

尝试模拟Entity Framework上下文时抛出TargetInvocationException

来自分类Dev

将同一对象附加到Entity Framework 6中的不同上下文

来自分类Dev

在Entity Framework 6中查询多个列

来自分类Dev

共享数据上下文/注入依赖项Entity Framework 6代码优先

来自分类Dev

Entity Framework 6 transaction rollback

来自分类Dev

将对象列表添加到Entity Framework中的数据库上下文

来自分类Dev

我的上下文未从Entity Framework Core中的DbContext继承

来自分类Dev

从Entity Framework Core中的cookie和基本路径创建数据库上下文

来自分类Dev

如何使用Entity Framework以可编辑的DataGridView和上下文跟踪更改的方式筛选数据?

来自分类Dev

在Entity Framework中嵌套嵌套

来自分类Dev

Entity Framework Core 中的 SqlGeometry

来自分类Dev

在Entity Framework 6中使用SqlQuery <Dictionary <string,string >>

来自分类Dev

从Entity Framework 6中的集合中删除

来自分类Dev

在Entity Framework Core中使用SQL视图

来自分类Dev

Entity Framework v6 中的 TPC

来自分类Dev

使用Entity Framework 6创建计算字段

来自分类Dev

使用“迁移”的Entity Framework 6.0.2中的错误

来自分类Dev

使用DTO在Entity Framework中延迟加载

来自分类Dev

在带有Entity Framework的ASP.NET MVC中,在此上下文中仅支持原始类型或枚举类型

来自分类Dev

在带有Entity Framework的ASP.NET MVC中,在此上下文中仅支持原始类型或枚举类型

来自分类Dev

在Entity Framework中使原始SQL安全

来自分类Dev

合并多个迁移Entity Framework代码优先

来自分类Dev

合并多个迁移Entity Framework代码优先

Related 相关文章

  1. 1

    可以在单个TransactionScope中使用多个Entity Framework数据上下文吗?

  2. 2

    可以在单个TransactionScope内使用多个Entity Framework数据上下文吗?

  3. 3

    使用多个Entity Framework上下文并行查询

  4. 4

    使用Entity Framework 6的多个上下文,跨dbcontexts引用了多个实体

  5. 5

    来自WCF数据服务的Entity Framework 6数据上下文

  6. 6

    在Entity Framework中使用DbSet而不是IDbSet模拟数据库上下文类

  7. 7

    尝试模拟Entity Framework上下文时抛出TargetInvocationException

  8. 8

    将同一对象附加到Entity Framework 6中的不同上下文

  9. 9

    在Entity Framework 6中查询多个列

  10. 10

    共享数据上下文/注入依赖项Entity Framework 6代码优先

  11. 11

    Entity Framework 6 transaction rollback

  12. 12

    将对象列表添加到Entity Framework中的数据库上下文

  13. 13

    我的上下文未从Entity Framework Core中的DbContext继承

  14. 14

    从Entity Framework Core中的cookie和基本路径创建数据库上下文

  15. 15

    如何使用Entity Framework以可编辑的DataGridView和上下文跟踪更改的方式筛选数据?

  16. 16

    在Entity Framework中嵌套嵌套

  17. 17

    Entity Framework Core 中的 SqlGeometry

  18. 18

    在Entity Framework 6中使用SqlQuery <Dictionary <string,string >>

  19. 19

    从Entity Framework 6中的集合中删除

  20. 20

    在Entity Framework Core中使用SQL视图

  21. 21

    Entity Framework v6 中的 TPC

  22. 22

    使用Entity Framework 6创建计算字段

  23. 23

    使用“迁移”的Entity Framework 6.0.2中的错误

  24. 24

    使用DTO在Entity Framework中延迟加载

  25. 25

    在带有Entity Framework的ASP.NET MVC中,在此上下文中仅支持原始类型或枚举类型

  26. 26

    在带有Entity Framework的ASP.NET MVC中,在此上下文中仅支持原始类型或枚举类型

  27. 27

    在Entity Framework中使原始SQL安全

  28. 28

    合并多个迁移Entity Framework代码优先

  29. 29

    合并多个迁移Entity Framework代码优先

热门标签

归档