键值对如何从列表中访问值

时间:2016-08-03 14:42:29

标签: c# linq

我有一个字段名称和值的键值对信息表我正在使用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

0 个答案:

没有答案