1

我的应用程序中的每个业务对象都有抽象类(BO)还有父(通用)集合来存储所有 BO(名为BOC - 业务对象集合)

我想存档的是在 BOC 内部创建的通用方法,类似于:

public  T GetBusinessObject (lambda_criteria)

所以我可以称这个方法类似于:

Employee emp = BOC.GetBusinessObject( Employee.ID=123 )

并且方法应返回满足指定 lambda 标准的 BO

任何提示如何存档?

4

3 回答 3

1

假设您的 BOC 在内部继承或使用通用列表,这并不难:

T GetBusinesObject<T>( Func<T, bool> predicate )
{
    return this.FirstOrDefault( predicate );
}
于 2009-05-07T08:48:02.633 回答
1

就像是

T GetBusinessObject<T>(Predicate<T> constraint) where T : BO

然后像

GetBusinessObject<Employee>( e => e.ID = 123 )

也许?

于 2009-05-07T08:50:05.233 回答
1

如果这是一个通用集合,那么调用者应该已经(通过 LINQ)能够使用:

BOC<Employee> boc = ...
// checks exactly 1 match, throws if no match
var emp = boc.Single(e => e.ID = 123);
// checks at most 1 match, null if no match
var emp = boc.SingleOrDefault(e => e.ID = 123);
// checks at least one match, throws if no match
var emp = boc.First(e => e.ID = 123);
// returns first match, null if no match
var emp = boc.FirstOrDefault(e => e.ID = 123);

那怎么办?

于 2009-05-07T08:51:47.990 回答