我有两个相关的类,例如:
public partial class WorkItem
{
public WorkItem()
{
this.ChildWorkItems = new HashSet<WorkItem>();
this.Attachments = new HashSet<Attachment>();
}
public int Id { get; set; }
public Nullable<int> ParentId { get; set; }
public string Title { get; set; }
public string SenderUserName { get; set; }
public virtual ICollection<WorkItem> ChildWorkItems { get; set; }
public virtual WorkItem ParentWorkItem { get; set; }
public virtual ICollection<Attachment> Attachments { get; set; }
}
和 realted 1-n 附件:
public partial class Attachment
{
public int Id { get; set; }
public string Filename { get; set; }
public Nullable<int> WorkItemId { get; set; }
public virtual WorkItem WorkItem { get; set; }
}
现在我想workitems
在数据库中插入一些带有附件的新内容。我使用以下代码进行插入:
首先把所有工作项(不管它们的附件)
var workItems = new List<WorkItem>();
foreach (var username in AllUsers)
{
var workitem = new WorkItem();
//fill the simple fields
lst.Add(workitem);
Context.WorkItems.Add(workitem);
}
然后设置附件:
foreach (var fileName in MYFILES)
{
var file = new System.IO.FileInfo(fileName);
foreach (var workItem in workItems)
{
var att =
new Attachment()
{
Filename = file.Name,
};
context.Attachments.Add(att);
att.WorkItem = workItem;
}
}
但我得到以下异常:
违反了多重性约束。关系“AienCRMModel.FK_WorkItemAttachments_WorkItems”的角色“WorkItem”具有多重性 1 或 0..1。
有趣的一点是,如果我只有一个 workitem
,一切都很好。如果我有多个WorkItem
没有附件,那么一切都很好。当有多个 WorkItem 和至少一个附件时,就会出现问题。
我阅读了很多其他帖子,但没有发现任何有用的信息。
注意:我使用 EF Code-First 4.3 和 T4 模板,它从 EDMX 文件生成我的类。
我真的很感谢您提前提供的帮助。
编辑 我在这里附上了提到的表格的完整 EDMX 图:
编辑 2
在此处完成 .edmx 文件:http://www.4shared.com/file/zQUO_qk7/CrmModel141.html?