2

我们正在与第三方应用程序合作,该应用程序允许用户创建自己的具有不同列的表。每个表都遵循“T{ID}”格式(T12、T23 等)。

我使用以下代码访问适当的表:

public class RecordDataContext : System.Data.Entity.DbContext
{
  public RecordDataContext(string nameOrConnectionString, string tableName)
    : base(nameOrConnectionString)
  {
    if (string.IsNullOrEmpty(tableName))
      throw new ArgumentNullException("tableName");
    TableName = tableName;
  }

  public string TableName { get; private set; }

  public DbSet<Record> Records { get; set; }

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
    modelBuilder.Entity<Record>()
      .ToTable(TableName);
  }
}

每个表都有某些相同的列(ID、CreateDateTime、ModifyDateTime 等)。它们还允许用户添加自己的列,用户友好的列标题存储在其他表中,数据表中的列遵循这种格式“索引{ID}”(Index20、Index35 等)。

使用实体框架,我希望能够将数据提取到这样的 POCO 模型中,其中索引列中的数据存储在 Data 属性中:

public class Record
{
  [Key]
  public int ID { get; set; }
  public DateTime CreateDateTime { get; set; }
  public DateTime ModifyDateTime { get; set; }
  public IDictionary<int, string> Data { get; set; }
}

如果这不可能,是否有其他方法可以在不发出单独的 SQL 请求的情况下检索索引列?

4

0 回答 0