如何动态地将实体框架模型映射到列?

时间:2012-07-13 17:16:56

标签: entity-framework entity-framework-4

我们正在使用第三方应用程序,该应用程序允许用户使用不同的列创建自己的表。每个表格都遵循“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等)。它们还允许用户添加自己的列,用户友好的列标题存储在其他表中,数据表中的列遵循“Index {ID}”格式(Index20,Index35等)。

使用Entity Framework我希望能够将数据提取到这样的POCO模型中,其中Index列中的数据存储在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请求?

0 个答案:

没有答案