2013-03-14 2 views
0

내가이 일반 저장소를 발견하지만 난 그것을 사용하는 방법을 발견 않았다 저장소 방법을 포함 :전화에서 여러 람다 식

public T FindSingle(Expression<Func<T, bool>> predicate = null, params Expression<Func<T, object>>[] includes) 
    { 
     var set = FindIncluding(includes); 

     return (predicate == null) ? set.FirstOrDefault() : set.FirstOrDefault(predicate); 
    } 

나는이

을? : 같은이 여러 관련 기관을 포함하는 호출 할 수있는 방법
 Message messageParentDomain = _messageRepository.FindSingle(m => m.Id == messageDto.MessageParent_Id, includes: i => i.MemberFrom, i => i.MemberTo); 

메시지 클래스 :

public class Message 
{ 
    // Primary properties 
    public int Id { get; set; } 
    public string NameFrom { get; set; } 
    public string EmailFrom { get; set; } 
    public string TelephoneFrom { get; set; } 
    public string Title { get; set; } 
    public string MessageText { get; set; } 
    public bool? Approved { get; set; } 
    public DateTime DateCreated { get; set; } 
    public DateTime? DateRead { get; set; } 

    // Navigation properties 
    public Member MemberFrom { get; set; } 
    public Member MemberTo { get; set; } 
    public MessageType MessageType { get; set; } 
    public Message MessageParent { get; set; } 

    public Ad Ad { get; set; } 
    public Ask Ask { get; set; } 
} 

감사합니다.

public T FindSingle<T>(Expression<Func<T, bool>> predicate = null, params Expression<Func<T, object>>[] includes) 
{ 
    var set = FindIncluding(includes); 

    return (predicate == null) ? set.FirstOrDefault() : set.FirstOrDefault(predicate); 
} 

을 나는 T 우리에게 FindSingle<Message>Expression<Func<Message, object>>를 제공하기 위해 (당신이 T를 전달할 수 없습니다) Message라고 있으리라 믿고있어 :

+3

"includes :"부분없이 사용해 보셨습니까? 'params' 부분을 정상적으로 작동하게하는 것만 큼? –

+0

안녕하세요, 그렇습니다. 작동하지 않습니다. – Patrick

+0

"작동하지 않습니다."무엇이 잘못되었는지에 대한 설명이 충분하지 않습니다. –

답변

0

다음은 컴파일 방법의 버전입니다. T를 실제 사용중인 객체로 대체해야합니다. 이 코드를 사용해보십시오 ...

Message messageParentDomain = 
    _messageRepository.FindSingle<Message>(
     m => m.Id == messageDto.MessageParent_Id, 
     includes: new Expression<Func<Message, object>>[] { 
      i => i.MemberFrom, 
      i => i.MemberTo 
     }); 
+0

을 읽어주십시오. 고마워. "T를 당신이 실제로 사용하고있는 물건으로 교체해야합니다"라는 말은 무엇을 의미합니까? 나는 Message를 시도했지만 include에서 사용하는 관련 엔티티에 대해 null이되었다. – Patrick

+0

Message 클래스에 다른 클래스에 대한 참조가 있습니까? Message 클래스를 질문에 추가 할 수 있습니까? – qujck

+0

안녕하세요, 예, 질문에 포함 시켰습니다. – Patrick