首页 新闻 会员 周边

怎么给Linq to Sql类实现一个LoadWithAllProperties<T>(

0
悬赏园豆:50 [已关闭问题] 关闭于 2008-09-17 22:02

Linq to Sql的延迟加载是一个好东西,但是也会带来一些郁闷的情况,那就是,当我不需要延迟加载一些属性的时候,它还会延迟加载。就是说,有时候我是需要LoadWithAllProperties的,这时候显然我可以用一个DataLoadOptions,设置LoadWith的方法来解决,但是有个问题,就是每次都得设置大量的属性。

我就想设计一个LoadWithAllProperties<T>()方法来解决这个问题,可以根据T的类型生成一个LoadWith好所有T的属性的DataLoadOptions,自然,我想到了反射,可是,问题来了——

LoadWith方法接受的参数是一个Lambda表达式,是硬编码的,而我这里反射出来的属性却是动态的,不可预知的,有什么办法可以解决这个问题吗?难道真的得动态构建Lambda表达式?那就痛苦了点吧?

P.S.由于Properties并不一定都是数据库的,比如我还有可能自定义一些属性,所以我考虑过反射的时候通过Linq to Sql本身就带的那些针对属性的Attribute来区分它是不是一个需要把延迟加载改成LoadWith立即加载的属性。

JimLiu的主页 JimLiu | 菜鸟二级 | 园豆:300
提问于:2008-09-11 22:32
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册