我在C#中使用BugReports。 BugReports可以有重复项,因此它们具有自引用DuplicateOf字段。 (BugReports列表)
public class BugReportDB
{
[Key]
public int Id { get; set; }
public string Description { get; set; }
....
//public int DuplicateId { get; set; }
public virtual BugReportDB DuplicatedOf { get; set; }
}
这是外键定义:
modelBuilder.Entity<BugReportDB>().HasOptional(u => u.DuplicatedOf).WithMany().Map(fkamc => fkamc.MapKey("DuplicatedOf"));
为了检查是否有任何重复,我运行以下方法:
var br = (from b in db.BugReport
where b.Id == originalId
select b);
if (!br.Any())
throw new NonexistentObjectException();
foreach (var brep in br) {
if(brep.DuplicatedOf.Id==bugReportId)
throw new InvalidOperationException();
在我的情况下,我没有为单个Id提供单个BugReport,而是有许多BugReport,每个重复一个。例如:BugReport A有两个重复:B和C.在这种情况下,我将在DB中有一个BugReport A,其中包含重复的B和一个带有重复C的BugReport。
我该如何解决这个问题?
提前致谢