C# fluent-nhibernate父子映射
当我尝试映射嵌套的父子关系时,FluentNHibernate有问题。 当我尝试这样的查询时:C# fluent-nhibernate父子映射,c#,nhibernate,fluent-nhibernate,mapping,nhibernate-mapping,C#,Nhibernate,Fluent Nhibernate,Mapping,Nhibernate Mapping,当我尝试映射嵌套的父子关系时,FluentNHibernate有问题。 当我尝试这样的查询时: var courier = session.Query<Courier>().FirstOrDefault(x => x.Code == "X"); 我用提供的映射制作了一个简单的应用程序,我发现了其中的一个缺陷 在您使用的DistributionCenter地图中 Id(x => x.Guid).GeneratedBy.Assigned().Column("Guid");
var courier = session.Query<Courier>().FirstOrDefault(x => x.Code == "X");
我用提供的映射制作了一个简单的应用程序,我发现了其中的一个缺陷 在您使用的DistributionCenter地图中
Id(x => x.Guid).GeneratedBy.Assigned().Column("Guid");
而不是
Id(x => x.Guid).GeneratedBy.Guid().Column("Guid");
我在一个测试运行中添加了一些行,其中两行是Code==“X”,第一行没有问题。尝试一下查询将返回正确的结果。Distributioncenter.Courierprices集合应包含链接到Distributioncenter的所有Courierprices。如果您尝试session.QueryOver()。其中(x=>x.Code==“x”).Take(1.SingleOrDefault();如果这不起作用,我希望看到你的地图不幸地没有改变。我编辑了帖子并添加了映射代码。您不必调用LazyLoad(),这是默认值。是的,但是我的目的是让Distributioncenter。Courierprices集合只包含Courier“X”的Courierprices。
assigned
是用于GUID的合理生成器,前提是您实际上是使用Guid.NewGuid()
自己分配它们。
Id(x => x.Guid).GeneratedBy.Assigned().Column("Guid");
Id(x => x.Guid).GeneratedBy.Guid().Column("Guid");