我想在实体框架的元组数组列表中获得“列名,列值”。
我有这个:
var colNames = typeof(tbl_ObisSchema).GetProperties().Select(a => a.Name).ToList();
获取所有列名称
using (var dbContext = new db_ReadyEngine_MSSQL())
{
var colNames = typeof(tbl_ObisSchema).GetProperties().Select(a => a.Name).ToList();
List<Tuple<string, string>> list = new List<Tuple<string, string>>();
list.Add(Tuple.Create(ColumnName, ColumnValue));
}
怎么做的? 非常感谢...
答案 0 :(得分:2)
一个专栏本身是不够的;您需要读取特定实体的列值。
拥有实体后,您可以使用the DbContext.Entry
method获取该实体的DbEntityEntry
实例。然后,CurrentValues
property将允许您访问该实体的当前属性值。
using (var dbContext = new db_ReadyEngine_MSSQL())
{
var entity = dbContext.Set<tbl_ObisSchema>().Find(thePrimaryKeyToFind);
if (entity == null) throw new InvalidOperationException("Record not found");
var entry = dbContext.Entry(entity);
var currentPropertyValues = entry.CurrentValues;
List<Tuple<string, object>> list = currentPropertyValues.PropertyNames
.Select(name => Tuple.Create(name, currentPropertyValues[name]))
.ToList();
// Do something with the list...
}