我有:
class Car {..}
class Other{
List<T> GetAll(){..}
}
Run Code Online (Sandbox Code Playgroud)
我想要做:
Type t = typeof(Car);
List<t> Cars = GetAll<t>();
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我想从运行时使用反射发现的类型的数据库中返回一个泛型集合.
我觉得以下应该是可能的我只是不确定采取什么方法.
我想要做的是使用include方法来塑造我的结果,即定义沿着对象图遍历的距离.但是......我希望这种遍历是有条件的.
something like...
dealerships
.include( d => d.parts.where(p => p.price < 100.00))
.include( d => d.parts.suppliers.where(s => s.country == "brazil"));
Run Code Online (Sandbox Code Playgroud)
我知道这不是有效的linq,事实上,它是非常错误的,但实质上我正在寻找一些方法来构建一个表达树,它将返回形状结果,相当于......
select *
from dealerships as d
outer join parts as p on d.dealerid = p.dealerid
and p.price < 100.00
outer join suppliers as s on p.partid = s.partid
and s.country = 'brazil'
Run Code Online (Sandbox Code Playgroud)
重点是加入条件.
我觉得这对esql来说是相当直接的,但我最喜欢的是动态构建表达式树.
一如既往,感谢任何建议或指导
我是一名学生,目前正在使用Nhibernate + WCF + WPF的.Net n层应用程序.
其中一件非常糟糕的事情是对象图序列化,事实上它根本没有完成,目前关联被忽略,我们在各处使用DTO.
据我所知,一个方法可以预先定义哪些对象和集合应该被加载和序列化以便通过网络传递,从而能够向客户端呈现一些关联,但是这看起来有限,不灵活且不一致(你能吗?)告诉我,我不喜欢这个想法).
我遇到的一个选择是简单地用客户端层上的延迟负载集合替换NHProxies,其中"disconnectedProxy"将通过线路检索相关的东西.这意味着我们必须稍微扩展我们的Web服务签名并对我们生成的代理做一些hackery,但这似乎是一个很好的T4 /其他代码生成实验.
据我所知,这似乎是一个常见的绊脚石,但经过大量的阅读后,我无法找出任何好的/普遍接受的解决方案.我正在寻找与任何特定解决方案一样多的方向,但如果有一种简单的方法让客户"感觉"连接,请告诉我.
c# ×1
casting ×1
conditional ×1
generics ×1
include ×1
linq ×1
nhibernate ×1
runtime ×1
wcf ×1