ユーザー テーブルとメッセージ テーブルがあります。Messages テーブルには、Users テーブルへの 2 つの外部キー参照 "To_Id" と "From_Id" があり、どちらも User.Id を指しています。メッセージを返すクエリを作成し、To と From の関係で表される User の両方から Username プロパティを取得できるようにしたいと考えています。これが私がこれまでに持っているものです:
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 列が消え、Sender 列と Recipient 列の名前も表示されません。ドキュメント、github のソース、およびこの質問を見てみました: Simple.Data - how to bi-drectionally join on the same table times without no success yet. 何か案は?