私のlinqに少し問題があるようです。グループ用のデータコントラクトがあり、メッセージ用に別のデータコントラクトがあります。メッセージはグループの一部にすることができます。ただし、メッセージ レコードを更新すると、グループ情報を一覧表示したときに反映されず、メッセージはそのグループに対して同じままです。しかし、メッセージを直接リストすると、更新は反映されますか?
グループにメッセージを追加する方法は次のとおりです。
//lists for reference:
List<Group> Groups = new List<Group>();
List<Message> messages = new List<Message>();
//not sure the below method is correct for adding a message to a group
public void AddMessagetoGroup(string group, string messageID, string message)
{
var result = Groups.Where(n => String.Equals(n.GroupName, group)).FirstOrDefault();
var result1 = messages.Where(n => String.Equals(n.MessageID, messageID)).FirstOrDefault();
if (result != null)
{
result.GroupMessages.Add(new Message() { MessageID = messageID, GroupMessage = message });
}
if (result1 != null)
{
result1.MessageGroup.Add(new Group() { GroupName = group });
}
}
メッセージをグループに追加すると、メッセージに加えた変更が反映されるはずです。私が考えることができる唯一のことは、既存のメッセージの新しいインスタンスを追加することです。つまり、私の更新メソッドはメッセージをコピーするだけですが、この新しいコピーされたレコードはどこに保持されていますか? 修正が難しい場合、代わりにグループにコピー/追加されたメッセージを更新するにはどうすればよいですか (安価な回避策)?