public string ToFieldName(LambdaExpression field) { string dataFieldName = null; if (field != null) { MemberExpression body = field.Body as MemberExpression; UnaryExpression expression2 = field.Body as UnaryExpression; if ((body == null) && (expression2 != null)) { body = expression2.Operand as MemberExpression; } if (body != null) { Type[] genericArguments = field.Type.GetGenericArguments(); if ((body.Member.MemberType == MemberTypes.Property) && (body.Expression.NodeType == ExpressionType.Parameter)) { PropertyInfo member = body.Member as PropertyInfo; if (member != null) { dataFieldName = DbObjectTools.GetDataFieldName(genericArguments[0], member); } } } } if (string.IsNullOrEmpty(dataFieldName)) { throw new Exception("無法從 Lambda 表達式 {0} 找到其對應的字段名稱。"); } return(dataFieldName); }