사용자 테이블과 메시지 테이블이 있습니다. Messages 테이블에는 Users 테이블에 대한 두 개의 외래 키 참조 인 "To_Id"와 "From_Id"가 User.Id를 가리 킵니다. 나는 메시지를 리턴하고 To와 From 관계로 표현 된 User로부터 Username 프로퍼티를 얻을 수있는 쿼리를 작성하고자한다. 이 쿼리의Simple.Data 한 방향 테이블에 두 번 참여하십시오.
dynamic sender;
dynamic recipient;
var messages= db.Messages.All(db.Messages.To_Id == currentUser.Id || db.Messages.From_Id == currentUser.Id)
.Join(db.Users.As("Sender"), out sender).On(sender.Id == db.Messages.From_Id)
.Join(db.Users.As("Recipient"), out recipient).On(recipient.Id == db.Messages.To_Id)
return messages;
결과는 올바른 메시지 카운트 날을 제공하지만, To_Id 및 From_Id 열은 사라지고 보낸 사람과받는 사람 열 이름은 표시되지 않습니다 : 여기에 지금까지 무슨이다. 나는 문서를보고, github 및이 질문에 대한 소스 : Simple.Data - how to bi-drectionally join on the same table twice 아직 성공하지 않고. 어떤 아이디어?