Fluent nhibernate Fluent nhibernate:删除HasOne关系时出现问题
我有两节课Fluent nhibernate Fluent nhibernate:删除HasOne关系时出现问题,fluent-nhibernate,foreign-keys,Fluent Nhibernate,Foreign Keys,我有两节课 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); } 零件只有一个库存,这就是我使用HasOne的原因。 数据插入正常,我有一个零件,一
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);
}
零件只有一个库存,这就是我使用HasOne的原因。
数据插入正常,我有一个零件,一个库存,它们保存正常。
我的问题是,当尝试删除时,我得到一个错误,即违反了零件的库存foring键
"ORA-02292: integrity constraint (PRINERGY.FK121AD9E59966BE23) violated " .
我看到它试图删除零件,但之前没有删除相关库存。
我该如何解决它呢?它似乎是一对一的双向关联。有两种方法可以在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);
}
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);
}
主键关联
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);
}
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);
}
有关更多详细信息,请参见。它似乎是一对一的双向关联。有两种方法可以在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);
}
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);
}
主键关联
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);
}
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);
}
有关更多详细信息,请参阅。您使用的是哪个版本?你能把这个答案标记为已解决吗?:)经过两天的研究,我找到了这个答案。我想给你百万分:)你用的是哪个版本?你能把这个答案标记为已解决吗?:)经过两天的研究,我找到了这个答案。我想给你百万分:)