내 linq에 약간의 문제가있는 것처럼 보입니다. Groups에 대한 datacontract가 있으며 메시지 용으로 별도의 datacontract가 있습니다. 메시지는 그룹의 일부가 될 수 있습니다. 그러나 그룹 정보를 나열 할 때 메시지 레코드가 업데이트되지 않으면 메시지는 해당 그룹에 대해 여전히 동일합니다. 그러나 메시지를 직접 나열하면 업데이트가 반영됩니까? 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 });
}
}
진심 세드릭 나는 메시지에 나는 모든 변경 사항이 반영되어야 그룹에 메시지를 추가하는 경우, 이해 해달라고 : 나는이 그룹에 메시지를 추가하는 방법
이입니다. 내가 생각할 수있는 유일한 방법은 이미 존재하는 메시지의 새로운 인스턴스를 추가하는 것입니다. 즉, 업데이트 방법은 메시지 만 복사하는 것이지만이 새로운 복사 된 레코드는 어디에 보관할 것입니다. 그 어려운 방법으로 수정하려면 어떻게해야합니까? 내가 복사 한 메시지를 업데이트 할 수 있습니까? 대신 그룹에 추가하십시오 (값싼 해결 방법)? 그룹 메시지를 가질 수 있고 메시지가 그룹을 가질 수 있다고 가정
내가 옳은 길에 있다고 생각하면 너무 혼란 스럽습니다. 구현하고 테스트하는 데 시간이 걸릴 수 있습니다. 따라서 미리 감사 드리며 제 코드를 리팩터링하는 방법에 대해 알아 보겠습니다. +1 야멘 이해와 매우 명확하고 간결한 대답. –
흠 뭔가 정말 이상한 일이 위의 사용하고, 기본 연결이 닫혔습니다 : 수신시 예상치 못한 오류가 발생했습니다. 그룹, 메시지를 나열하려고 할 때마다? –
이 코드는 우리가 볼 수있는 코드와 아무런 관련이없는 것 같습니다. LINQ를 기본 소스에 연결하여 지연된 실행으로 인해 문제가 발생할 가능성이 있습니다. 구성은 무엇입니까? 아마도 다른 질문에 가치가 있습니다. – yamen