我想构建一个包含多个列表的对象。对象 - 消息 - 由一个表格表示,并且包含的列表各自由一个表格表示。为什么当我选择使用LINQ ORM映射的对象时,我的子表实体不会显示
问题是,当选择消息时,即使在子表中有值,应该引用子表中内容的属性也都有一个零计数。
我简化了数据库,这样我只有一个关联的子表提供了一个很好的例子。
我有什么:
一个表称为消息,它包含以下属性:
- 标识 - UINT - 自动生成的 - 主键
- 消息 - 串
一个名为“收件人”的表格,其中包含以下属性ES:
- 的MessageId - UINT - 主键
- RecipientId - UINT - 初级这两者之间键
一个关联。信息是父母,收件人是孩子。基数是一对多的。参与的属性是Messages.Id - > Recipients.MessageId。
我的目标是能够保存消息。每封邮件应该有一个或多个收件人。当我从Messages表中提取邮件时,我希望收件人属性(从联系人生成的收件人表)返回所有收件人,其中MessageId等于解压缩邮件的Id。
所以,我插入到数据库:
void SendMessage(string message, uint recipient)
{
var m = new Message { Message = message };
context.Messages.InsertOnSubmit(m);
context.SubmitChanges();
var r = new Recipient { MessageId = m.Id, RecipientId = recipient };
context.Recipients.InsertOnSubmit(r);
context.SubmitChanges();
}
现在,如果我选择从消息表中的消息,我找到邮件。其收件人属性的计数= 0。不知何故与收件人的关联不是。所以我必须做一些错误的事情。
但是 - 这真让我困惑 - 如果我从收件人表中选择收件人,我会找到具有正确的MessageId和RecipientId的收件人。 ORM框架还生成了一个引用父表的属性,这个属性可以工作!收件人实体的Message属性实际引用作为其父项的Message。
任何人都可以给我一个提示,我错过了,以便能够列出父实体的所有子实体吗?或者需要更多的信息来给我一个答案?
这太简单了:D谢谢! – Bulgur