似乎我有一个轻微的问题,我的LINQ,我有一个组的数据合同,我有一个单独的数据合同的消息。消息可以是组的一部分。但是,当我更新消息记录时,它在列出组信息时未反映出来,该消息对于该组仍然是相同的。但是,当我直接列出消息时,更新反映出来了吗?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 });
}
}
严重不明白怎么回事,如果我添加消息到组我做出邮件进行任何更改应该反映。我能想到的唯一的事情就是它添加了一个已经存在的消息的新实例,这意味着我的更新方法只是复制消息,但这个新的被拷贝的记录甚至保存在哪里。如果难以解决,我怎么能更新已被copyToTo /添加到组中的消息(廉价解决方法)?
呃很混乱(不是你的答案)以为我在正确的轨道上,可能需要一段时间来实现和测试你所说的话。所以我要提前感谢你,并开始重构我的代码。 +1衙门的理解和一个非常明确和简洁的答案。 – 2012-04-27 06:56:28
嗯真正奇怪的是使用上述,底层连接已关闭:接收时发生意外错误。任何时候我尝试列出组,消息? – 2012-04-27 07:28:42
这似乎与我们可以看到的代码没有任何关系 - 可能您正在使用连接到基础源的LINQ,并且延迟执行导致问题。什么是配置?也许值得一个不同的问题。 – yamen 2012-04-27 07:51:01