2011-11-26 59 views
2

我是新来的,有人可以告诉我这是如何工作,以及在“mycode”为了调用存储库?在lambda作为参数新

public class MemberService : ServiceBase<IMemberModel>, IMemberService 
{   
    public MemberViewModel GetSingle(Expression<Func<MemberViewModel, bool>> whereCondition) 
    { 
     mycode  
    } 
} 

public abstract class RepositoryBase<T> : IRepository<T> 
{ 
    public T GetSingle(Expression<Func<T, bool>> whereCondition) 
    { 
     return ObjectSet.Where(whereCondition).FirstOrDefault(); 
    } 
} 

谢谢!

回答

1

你需要的可能是一个基于成员的lambda,而不是MemberViewModel。你的方法可能应该是这样的:

public MemberViewModel GetSingle(Expression<Func<Member,bool>> whereCondition) 
{ 
    var member = this.MemberRepository.GetSingle(whereCondition); 
    if (member != null) 
    { 
     return new MemberViewModel(member); 
     // or however you map from member to its view model 
    } 
    return null; 
} 
+0

你的建议使得sence,但我试图不让UI知道成员,这是在数据层。 –

+0

我认为它需要一个通用的自定义类,并用类似的东西替换签名... MemberViewModel GetSingle(CustomObject where)。我不知道如何做到这一点,但BL层可以将其转换并调用存储库。 –

+0

我会在如何制作自定义课程时提出一个新问题。 –