我如何使用反向属性?如果我没有弄错,对于一对多关系,inverse属性必须设置为true.对于多对多关系,其中一个实体类逆属性必须设置为true,另一个设置为false.
任何人都可以对此有所了解吗?
我正在尝试让NHibernate使用集合的许多方面来管理双向关联以建立零对一关系.
父类和地图:
public class Parent
{
private ICollection<Child> children;
public Parent()
{
this.children = new HashedSet<Child>();
}
public virtual Guid Id { get; protected internal set; }
public virtual Child Child
{
get { return children.FirstOrDefault(); }
set
{
{
this.children.Clear();
if (value != null)
{
this.children.Add(value);
}
}
}
}
}
public class ParentMap : ClassMap<Parent>
{
public ParentMap()
{
this.Id(x => x.Id)
.GeneratedBy.GuidComb();
this.HasMany<Child>(Reveal.Member<Parent>("children"))
.Access.Field()
.Cascade.All()
.Not.Inverse()
.AsSet();
}
}
Run Code Online (Sandbox Code Playgroud)
儿童班和地图:
public class Child
{
public virtual Guid …Run Code Online (Sandbox Code Playgroud) 当使用NHibernate Mapping By Code时,我对Cascade枚举选项行为有疑问.
Enum有以下选项:
[Flags]
public enum Cascade
{
None = 0,
Persist = 2,
Refresh = 4,
Merge = 8,
Remove = 16,
Detach = 32,
ReAttach = 64,
DeleteOrphans = 128,
All = 256,
}
Run Code Online (Sandbox Code Playgroud)
它们的目的是像位标志组合一样使用(据我所知).
我通过NHibernate文档查看过,并在那里定义了以下用于XML映射的级联选项:生命周期和对象图
任何人都可以通过代码描述来自新Nhibernate映射的级联选项吗?其中一半是自我描述,另一半则不是.