我在 Linq to Sql 的 IRepository 实现中编写了以下代码:
我在 Linq to Sql 的 IRepository 实现中编写了以下代码:
var newlist = from h in list where h.StringProp1 == "1"
select new MyBusinessBO{
firstProp = h.StringProp1,
secondProp = h.StringProp2
};
将投影映射到MyBusinessBO并不困难,但当业务对象具有许多属性时,投影代码变得非常冗长。此外,由于投影可以在存储库中的多个位置发生,因此我们违反了DRY原则。
有没有办法抽象出投影或用委托替换它?
例如,替换代码:
firstProp = h.StringProp1,
secondProp = h.StringProp2
使用可重复利用的东西?
Func
定义为一个真正的方法。原帖作者想要重用那个投影逻辑。 - StevenFunc<MyType, MyBusinessBO>
无法使用Entity Framework投影到SQL。我知道这个问题是针对Linq-to-SQL
的,它可能能够完成投影,但是为了编写更具时间性的代码,将您的变量设置为Expression<Func<MyType,MyBusinessBO>>
可能更好。 - ErikE