我正在尝试为我们的数据库实现分片,而且我在使用Entity Framework同时查询多个分片时遇到问题,因此我们可以获得完整的实体列表。
我希望创建一个类似于上下文的类,它可以为我的每个IQueryable<T>
公开DbSet<T>
,捕获所做的查询并针对每个分片运行它们,并在返回结果之前聚合结果。理想情况下,这应该像以下一样易于使用:
using (AllShardContext db = new AllShardContext())
{
List<Item> items = db.Items.Where(it => it.Price > 100).ToList()
}
我一直在尝试制作自定义IQueryProvider
和IQueryable
,并已针对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}}
我是否在正确的轨道上?谢谢你的帮助。