【问题标题】:What is equivalent GetPropValue<T> method in L2E?L2E 中的等效 GetPropValue<T> 方法是什么?
【发布时间】:2009-11-27 17:46:16
【问题描述】:

我在为我的数据模型使用 EF 时遇到问题。

我的方法中有这段代码:

  listaPaginada = sortOrder.Equals("asc") ?
                    _cadastroServ.SelecionaNotasFiscais(idParceiro).OrderBy(i =>   i.GetType().GetProperty(query)) :
                    _cadastroServ.SelecionaNotasFiscais(idParceiro).OrderByDescending(i => i.GetType().GetProperty(query));

我正在使用相同的方法听到:

Func<NotaFiscal, bool> whereClause = (i => i.GetPropValue<string>(sortName).Contains(query));
            listaPaginada = sortOrder.Equals("asc", StringComparison.CurrentCultureIgnoreCase) ?
                _cadastroServ.SelecionaNotasFiscais(idParceiro).Where(whereClause).OrderByDescending(i => i.GetPropValue<IComparable>(sortName)) :
                _cadastroServ.SelecionaNotasFiscais(idParceiro).Where(whereClause).OrderBy(i => i.GetPropValue<IComparable>(sortName));

在 L2SQL 中存在 GetPropValue 方法,但在 L2E 中不存在。

有人知道 L2E 中的类似方法吗? 或者知道如何解决这个问题?

问候[]

【问题讨论】:

    标签: c# asp.net-mvc entity-framework linq-to-entities flexigrid


    【解决方案1】:

    我不熟悉 LINQ-to-SQL 中的 GetPropValue。你确定它存在吗?也就是说,很容易想象出这个方法在做什么并相应地编写:

    static class ObjectExtensions {
        public static T GetPropValue<T>(this object value, string propertyName) {
            if (value == null) { throw new ArgumentNullException("value"); }
            if (String.IsNullOrEmpty(propertyName)) { throw new ArgumentException("propertyName"); }
            PropertyInfo info = value.GetType().GetProperty(propertyName);
            return (T)info.GetValue(value, null);
        }
    }
    

    用法:

    public class Test {
        public string Name { get; set; }
        public int Number { get; set; }
    }
    
    Test test = new Test() { Name = "Jenny", Number = "8675309" };
    Console.WriteLine(test.GetPropValue<string>("Name"));
    Console.WriteLine(test.GetPropValue<int>("Number"));
    

    【讨论】:

      猜你喜欢
      • 2019-06-15
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 2018-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多