0
私は3つのモデルが.netコア1.1 MVCにあります。ネストされた.netコア1.1に含まれています
コミュニケーション
public class Communication { public Guid CommunicationId { get; set; } public string Subject { get; set; } public bool IsRead { get; set; } = false; public Guid UserId { get; set; } public Guid AssignedTo { get; set; } public DateTime CreatedAt { get; set; } = DateTime.Now; public DateTime UpdatedAt { get; set; } = DateTime.Now; public Nullable<DateTime> DeletedAt { get; set; } public virtual ICollection<Message> Messages {get; set;} }
メッセージメッセージテーブル内
public class Message { public Guid MessageId { get; set; } public Guid CommunicationId { get; set; } public Guid SenderId { get; set; } = new Guid(); public Guid ReceiverId { get; set; } = new Guid(); public string Body { get; set; } public DateTime CreatedAt { get; set; } = DateTime.Now; public DateTime UpdatedAt { get; set; } = DateTime.Now; public Nullable<DateTime> DeletedAt { get; set; } }
ユーザー
のSenderIDとReceiverIDユーザーテーブルのユーザIDです。
これらのモデルの間の関係 通信has_manyメッセージ。通信belongs_toの メッセージ ここReceiverId
を介してユーザblongs_toのSenderID メッセージを介してユーザbelongs_toのメッセージのように私のコントローラに見えるです: {communicationId:私はこのようなJSONオブジェクトを生成したい
_context.Communications.Include(c=> c.Messages)
: 'xxx'、メッセージ[{messageId: 'xxx'、送信者:{ユーザー情報はここに}}、受信者:{ユーザー情報はこちら}}
メッセージオブジェクトにユーザーオブジェクトを含めるにはどうすればよいですか?
ありがとうございました。
こんにちはモルガンのようなあなたのクエリを変更します。もう1つの質問。特定のユーザーのすべての通信を見つけるにはどうすればよいですか? 私のメッセージには、senderIdとReceiverIdがあります。 (m => m.Messages.senderId == id || m.Messages.ReceiverId == id).ToListAsync(); var通信=待機_context.Communications.Include(c => c.Messages) 。 これは正しい構文ではありません。それは何であるべきですか?ありがとう –
なぜあなたは 'ThenInclude'を使わないのですか? –
私はThenIncludeが私の問題の正しい解決策ではないと信じています。メッセージはicollectionです。私はicollectionオブジェクトを照会する方法が必要です –