我有两个对象......如果我用任何一个编译一个程序,它运行正常,但是当它们都存在于同一个程序中时,我得到异常......
“'ObjectContext.UnitSet'中的实体参与'Sheet_Statistics'关系。找到0相关的'工作表'。预计会有1'工作表'。” < / p>
class Unit
{
public int Id;
public string Name;
}
class Template
{
public int Id;
public virtual ICollection<Unit> Units
}
class Sheet
{
public int Id;
public virtual ICollection<Unit> Units
}
然后他们的配置..
TemplateConfiguration:EntityConfiguration // ....
//// map the collection entity
HasMany(k => k.Units).WithRequired()
.Map("template.units",
(template, unit) => new
{
Template = template.Id,
Unit = unit.Id
});
SheetConfiguration:EntityConfiguration // ....
//// map the collection entity
HasMany(k => k.Units).WithRequired()
.Map("sheet.units",
(sheet, unit) => new
{
Sheet = sheet.Id,
Unit = unit.Id
});
UnitConfiguration : EntityConfiguration<Unit>
//
// Initialize the Primary Key
HasKey(k => k.Id);
// Initialize that the Key Increments as an Identity
Property(k => k.Id).IsIdentity();
var templates = new List<Template>
{
new Template
{
Name = // ..,
Units = new List<Unit>
{
new Unit
{
// ...
}
}
}
};
templates.ForEach(x =>
{
context.Templates.Add(x);
});
context.SaveChanges(); // <-- Exception Happens Here, I never even get to try to add Sheets.
答案 0 :(得分:2)
我正在考虑这个因为没有看到所有你的代码,我无法解决更多问题。我认为您的问题是您创建 Unit
但未设置某种Sheet
属性(您需要提供所有实体/配置代码)。您需要创建Sheet
和Unit
两者,然后才能保存Unit
或Sheet
,因为它们具有必需的参考(因此错误)你得到了)。如果您提供更多代码,我将能够更好地完善我的答案。