我们正在与第三方应用程序合作,该应用程序允许用户创建自己的具有不同列的表。每个表都遵循“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 请求的情况下检索索引列?