2011-11-26 65 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

我會在如何製作自定義課程時提出一個新問題。 –