EntityFrameworkCore相当dbcontext或应该在.Net Core中分离DbContext像有界上下文获取性能

时间:2016-11-21 10:00:53

标签: entity-framework asp.net-core entity-framework-core .net-core

EntityFramework 旧版本中,如果我的表DbSet超过50,我肯定会使用 BoundedContext概念进行分离,因为大多数我从一些博客网站获得的提示和技巧,现在我的问题是.net核心如果我有100个表,是否 EntityFrameworkCore 可以在一个单独处理100个表或更多DbContext,或者确实在分离它的性能以获得它的进程负载并不重。感谢。

1 个答案:

答案 0 :(得分:2)

它不一定是性能问题,因为DbContext为您的DbSets使用IQueryable,因此每个'表'在您调用ToList(),First()等之前,我没有实现。我已经处理过在单个上下文中使用了超过100个表的项目(而不是我的设计),并且瓶颈从来没有来自大型DbContext。它只是让整个项目变得不合时宜,而不是我想再做的事情。

对于较大的项目,无论是.net核心还是.net< = 4.5,我肯定会走向有界的上下文路由,但是从DDD的角度来看。 Juli Lerman写了很多关于此的博文,当然还有Eric Evans的blue book,这是DDD的圣经。

另一位DDD弟子是吉米·博加德,他通过深入研究价值对象,聚合体和根源来{DD}打造expands

简短的回答(为时已晚)是不,从性能的角度来看,您不必担心DbContext中的100个对象,而是使用DDD,聚合,值对象,有界上下文等,您可能会发现所需的表格数量会缩小,您的项目会变得更加清晰,并且会更加分离。