ini*_*iki 2 nhibernate fluent-nhibernate
我有一个ReportRequest对象定义为:
public class ReportRequest
{
public virtual Int32? Id { get; set; }
public virtual string Description { get; set; }
public virtual IList<ReportClient> ReportClients{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
和ReportClient定义为:
public class ReportClient
{
public virtual int? Id { get; set; }
public virtual long? ClientId { get; set; }
public virtual string Name { get; set; }
public virtual string EmailAddress { get; set; }
public virtual IList<ReportClient> ChildClients { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
ReportClient的映射:
public class ReportClientMap : ClassMap<ReportClient>
{
public ReportClientMap()
{
Id(x => x.Id).UnsavedValue(null).GeneratedBy.Native();
Map(x => x.ClientId);
Map(x => x.Name);
Map(x => x.EmailAddress).Length(255);
HasMany<ReportClient>(x => x.ChildClients)
.KeyColumn("ParentId")
.KeyNullable()
.AsBag()
.Inverse()
.ForeignKeyConstraintName("FK_ReportClient_ParentId");
}
}
Run Code Online (Sandbox Code Playgroud)
ChildClient需要保存为ReportClient,但设置了ParentId.
尽管ReportRequest和ReportClients保存得很好,但我面临的问题是ReportClient.ChildClients没有被保存.
我甚至没有收到任何错误.
有任何想法吗?
您需要为ChildClients属性映射设置级联到save-update:
HasMany<ReportClient>(x => x.ChildClients)
.KeyColumn("ParentId")
.KeyNullable()
.AsBag()
.Inverse()
.Cascade.SaveUpdate()
.ForeignKeyConstraintName("FK_ReportClient_ParentId");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3818 次 |
| 最近记录: |