实体框架:使用完全相同的表定义查询多个表/实体

时间:2019-01-12 21:30:30

标签: c# entity-framework partitioning

我正在使用一个供应商数据库(无法对架构进行任何更改),该数据库每月对数据进行分区,并且已经这样做了几年。我已经将EF实体映射到约100个表,它们都很好查询。对于这100多个表(在我的代码中),有一个通用的基类定义了所有属性。

我还有一个类,用于定义开始日期,结束日期以及与该时间段相关的DataContext DbSet属性。我的希望是对该集合进行迭代,并将查询条件应用于与该时间段匹配的每个DbSet,然后合并结果。

我在定义该实体时遇到了麻烦。我在DbContext实体上使用反射来拉出该属性。

var property = _myDbContext.GetType().GetProperty(propertyName).GetValue(_myDbContext);

然后,我有了定义周期和实体的类(此操作失败-无法转换。

private class MyClass
{
    public DbSet<BaseDbSetClass> MyDbSet { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}

以下内容也失败,无法投射:

private class MyClass<T> where T : class, IBaseDbSetClass
{
    public DbSet<T> MyDbSet { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}

这可能吗?还是有更好的方法来处理EF中的手动分区?

谢谢!

0 个答案:

没有答案