1 foreign-keys fluent-nhibernate
我有两节课
public PartMap()
{
Id(x => x.ID).GeneratedBy.Guid();
HasOne(x => x.Stock)
.Cascade.All();
}
public Stock
{
Id(x => x.ID).GeneratedBy.Guid();
References(x => x.Part);
}
Run Code Online (Sandbox Code Playgroud)
零件只有一只库存,这就是我使用HasOne的原因。数据已插入好,我有一个零件,一个库存,它们已保存好。我的问题是,当尝试删除时,我收到一个错误,指出零件的库存前期密钥已被违反
"ORA-02292: integrity constraint (PRINERGY.FK121AD9E59966BE23) violated " .
Run Code Online (Sandbox Code Playgroud)
我看到它尝试删除零件而不删除相关库存。我该如何解决?
似乎是一对一的双向关联。有两种方法可以在NH(和FNH)中映射此关联:主键关联和外键关联。您的示例更接近于外键关联。
外键协会
public PartMap()
{
Id(x => x.Id).GeneratedBy.Guid();
References(x => x.Stock).Unique().Cascade.All();
Map(x => x.Name);
}
public StockMap()
{
Id(x => x.Id).GeneratedBy.Guid();
HasOne(x => x.Part).Cascade.All().PropertyRef("Stock");
Map(x => x.Name);
}
Run Code Online (Sandbox Code Playgroud)
主键关联
public PartMap()
{
Id(x => x.Id).GeneratedBy.Guid();
HasOne(x => x.Stock).Cascade.All();
Map(x => x.Name);
}
public StockMap()
{
Id(x => x.Id).GeneratedBy.Foreign("Part");
HasOne(x => x.Part).Constrained();
Map(x => x.Name);
}
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参见http://fabiomaulo.blogspot.com/2010/03/conform-mapping-one-to-one.html。
| 归档时间: |
|
| 查看次数: |
1749 次 |
| 最近记录: |