我有一个字段名称和值的键值对信息表我正在使用linq来获取所有值但我的问题是:
处理此问题的最佳方法是什么?即我需要能够访问此列表中的值并将它们分配给文本框。我在一个有数百个字段的表单上使用它,一旦我从下面的方法中检索它,我想将值设置为
public List<tblPortalIandEValue> GetValuesByUserId(Guid id)
{
try
{
List<tblPortalIandEValue> _iandeValues = new List<tblPortalIandEValue>();
_iandeValues = (from _iande in portalEntities.tblPortalIandEValues
where _iande.userId == id && _iande.isDeleted == false && _iande.isActive==true
select _iande)
.ToList();
return _iandeValues;
}
catch (Exception ex)
{
string inner = string.Empty;
if (ex.InnerException != null)
{
inner = ex.InnerException.ToString();
}
// logger.Error("Error in GetValuesByUserId function aperturenetdal " + ex.ToString() + " " + inner);
return null;
}
}
目前我正在这样做,我认为这是非常低效的
/// <summary>
///
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public decimal getiandEData(Guid _userId ,string Keyname)
{
try
{
var _iandeValue = portalEntities.tblPortalIandEValues
.Where(f => f.isDeleted == false && f.userId == _userId && f.field_name == Keyname)
.OrderByDescending(o => o.field_name)
.FirstOrDefault();
return Convert.ToDecimal(_iandeValue.field_value);
}
catch (Exception ex)
{
string inner = string.Empty;
if (ex.InnerException != null)
{
inner = ex.InnerException.ToString();
}
// logger.Error("Error in IQueryable function getAllApointments " + ex.ToString() + " " + inner);
return Convert.ToDecimal("0.00");
}
}
最后填充值是否有更好的方法来分配数据?
clientearningscic.Value = Decimal.Round(_dal.getiandEData(_myuser.id, "clientearningscic"),2) ;
该表基本上包含:
id fieldname fieldvalue
1气25.00
2电30.50