实体框架包装器,用于查询多个相同的DbContexts(分片)

时间:2015-03-11 18:01:22

标签: c# entity-framework entity-framework-6 sharding

我正在尝试为我们的数据库实现分片,而且我在使用Entity Framework同时查询多个分片时遇到问题,因此我们可以获得完整的实体列表。 我希望创建一个类似于上下文的类,它可以为我的每个IQueryable<T>公开DbSet<T>,捕获所做的查询并针对每个分片运行它们,并在返回结果之前聚合结果。理想情况下,这应该像以下一样易于使用:

using (AllShardContext db = new AllShardContext())
{
    List<Item> items = db.Items.Where(it => it.Price > 100).ToList()
}

我一直在尝试制作自定义IQueryProviderIQueryable,并已针对Expression捕获了IQueryable针对The specified cast from a materialized 'Testing.Item' type to the 'System.Data.Entity.Core.Objects.ObjectQuery1[Testing.Item]' type is not valid.运行但无法针对实际的EF运行上下文。 我得到了{{1}}

我是否在正确的轨道上?谢谢你的帮助。

0 个答案:

没有答案