我们正在使用第三方应用程序,该应用程序允许用户使用不同的列创建自己的表。每个表格都遵循“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请求?