我们假设我有两个类:
class person
{
int ID
string name
Address address
}
class address
{
int ID
string street
string country
}
Run Code Online (Sandbox Code Playgroud)
这些类或多或少给出,它们通过nHibernate映射为诚实:)
在一个网格(datatables.net作为基础)我想有一个类型独立的排序.
因此我创建了一个lambda表达式:
var param = Expression.Parameter(typeof(T), typeof(T).Name);
var sortExpression = Expression.Lambda<Func<T, object>>
(Expression.Convert(Expression.Property(param, "Property to sort"), typeof(object)), param);
Run Code Online (Sandbox Code Playgroud)
如果我将Person作为类型T传递并用"name"替换"要排序的属性",它可以正常工作(创建一个正确的lambda).如果要排序的属性是"address.street"它将无法正常工作,抛出以下错误:
Property 'address.street' is not defined for type 'person'
Run Code Online (Sandbox Code Playgroud)
到目前为止我只看到一个解决方案,但不够清楚...我会尝试拆分包含Property-Name的字符串(拆分.)
谁能提供更好的解决方案?我需要将sortExpression添加到IQueryable对象query.OrderBy(sortExpression).
不确定我的标题是否清楚,请继续并更正.
提前致谢.
我正在研究一个MVC项目,表现很好.
在application_start上,数据库被索引为lucene.net搜索(并且对象的每次更改都会扩展索引).但是application_start会在我在页面上调用的每个操作上运行.
为什么它不仅一次触发application_start?当我知道要去哪里时,我会发布任何代码;)
我不确定web.config是否会导致此行为...
解决方案:Lucene.net将其索引写入bin文件夹,在更改路径后,应用程序不再融化我的脸了:)
我有一个控制器名称列表,然后将列出给定控制器中的所有操作(名称,GUID).
此处找到的所有控制器列表.
我还在阅读列出控制器上具有特定属性的所有操作,这些属性与我的目的相匹配,因为我还需要具有特定属性的操作.但我只有所选控制器的名称/ GUID,而不是对象本身.
我的场景:用户选择一个控制器(级联下拉列表),然后选择来自该控制器的操作来配置一些访问(和链接).因此,我只需要具有自定义属性的操作.