Fluent nhibernate FluentNhibernate。检查引用失败 公共类WorldEntity { 公共实体() { 场景=新列表(); } 公共虚拟整数Id{get;set;} 公共虚拟字符串名称{get;set;} 公共虚拟字符串图片{get;set;} 公共虚拟IList场景{get;set;} } 公共类世界地图:类地图 { 公共世界地图() { 表(“世界”); Id(x=>x.Id).GeneratedBy.Identity(); Map(x=>x.Name); 地图(x=>x.Picture); 有许多(x=>x.Scenes); } } 公共类场景 { 公共虚拟整数Id{get;protected set;} 公共虚拟字符串名称{get;set;} 公共虚拟字符串映像{get;set;} //公共虚拟int WorldId{get;set;} 公共虚拟世界实体世界{get;set;} 公共虚拟短noexit{get;set;} 公共虚拟字符串AnimatedIntroPath{get;set;} } 公共类场景映射:类映射 { 公共场景地图() { 表(“场景”); Id(x=>x.Id).GeneratedBy.Identity(); Map(x=>x.Name); Map(x=>x.Image); Map(x=>x.NoExits); 映射(x=>x.AnimatedIntroPath); //Map(x=>x.WorldId).Not.Nullable(); 参考文献(wrd=>wrd.World,“WorldId”); } } [测试] 新PersistenceSpecification(会话) .CheckProperty(x=>x.Name,“场景名称”) .CheckProperty(x=>x.Image,“图像路径”) //.CheckProperty(x=>x.WorldId,aa.Id) .CheckReference(x=>x.World,aa) .验证应用程序();

Fluent nhibernate FluentNhibernate。检查引用失败 公共类WorldEntity { 公共实体() { 场景=新列表(); } 公共虚拟整数Id{get;set;} 公共虚拟字符串名称{get;set;} 公共虚拟字符串图片{get;set;} 公共虚拟IList场景{get;set;} } 公共类世界地图:类地图 { 公共世界地图() { 表(“世界”); Id(x=>x.Id).GeneratedBy.Identity(); Map(x=>x.Name); 地图(x=>x.Picture); 有许多(x=>x.Scenes); } } 公共类场景 { 公共虚拟整数Id{get;protected set;} 公共虚拟字符串名称{get;set;} 公共虚拟字符串映像{get;set;} //公共虚拟int WorldId{get;set;} 公共虚拟世界实体世界{get;set;} 公共虚拟短noexit{get;set;} 公共虚拟字符串AnimatedIntroPath{get;set;} } 公共类场景映射:类映射 { 公共场景地图() { 表(“场景”); Id(x=>x.Id).GeneratedBy.Identity(); Map(x=>x.Name); Map(x=>x.Image); Map(x=>x.NoExits); 映射(x=>x.AnimatedIntroPath); //Map(x=>x.WorldId).Not.Nullable(); 参考文献(wrd=>wrd.World,“WorldId”); } } [测试] 新PersistenceSpecification(会话) .CheckProperty(x=>x.Name,“场景名称”) .CheckProperty(x=>x.Image,“图像路径”) //.CheckProperty(x=>x.WorldId,aa.Id) .CheckReference(x=>x.World,aa) .验证应用程序();,fluent-nhibernate,nhibernate-mapping,fluent-nhibernate-mapping,Fluent Nhibernate,Nhibernate Mapping,Fluent Nhibernate Mapping,运行测试后,我收到以下错误: System.ApplicationException:对于属性“World”,需要相同的元素,但获得了不同类型的元素“TwitQuestNet.DataDefinitions.OrmConfig.Entities.WorldEntity”。 提示:重写类型上的ToString()以找出差异。 在FluentNHibernate.Testing.Values.Property2.CheckValue(对象目标) 位于System.Collections.Generi

运行测试后,我收到以下错误:

System.ApplicationException:对于属性“World”,需要相同的元素,但获得了不同类型的元素“TwitQuestNet.DataDefinitions.OrmConfig.Entities.WorldEntity”。 提示:重写类型上的ToString()以找出差异。 在FluentNHibernate.Testing.Values.Property
2.CheckValue(对象目标)
位于System.Collections.Generic.List
1.ForEach(操作
1操作)
在FluentNHibernate.测试.持久性规范
1.验证应用程序(T优先) 在SceneTest.cs中的TwitQuestNet.Test.EntityMapTests.SceneTest.scene\u map\u Successs()中:第23行


我做错了什么?由于我被困了将近一天:(

已排序。我必须添加EqualityComparer(),测试将通过

public class WorldEntity
{
    public WorldEntity()
    {
        Scenes = new List<SceneEntity>();
    }
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual string Picture { get; set; }
    public virtual IList<SceneEntity> Scenes { get; set; }

}

public class WorldMap : ClassMap<WorldEntity>
{
    public WorldMap()
    {
        Table("Worlds");
        Id(x => x.Id).GeneratedBy.Identity();
        Map(x => x.Name);
        Map(x => x.Picture);
        HasMany(x => x.Scenes).KeyColumn("Id");
    }
}

public class SceneEntity
    {
        public virtual int Id { get; protected set; }
        public virtual string Name { get; set; }
        public virtual string Image { get; set; }
        //public virtual int WorldId { get; set; }
        public virtual WorldEntity World { get; set; }
        public virtual short NoExits { get; set; }
        public virtual string AnimatedIntroPath { get; set; }
    }

    public class SceneMap: ClassMap<SceneEntity>
    {
        public SceneMap()
        {
            Table("Scenes");
            Id(x => x.Id).GeneratedBy.Identity();
            Map(x => x.Name);
            Map(x => x.Image);
            Map(x => x.NoExits);
            Map(x => x.AnimatedIntroPath);
            //Map(x => x.WorldId).Not.Nullable();
            References(wrd => wrd.World, "WorldId");
        }
    }

[Test]
     new PersistenceSpecification<SceneEntity>(Session)
            .CheckProperty(x => x.Name, "Scene Name")
            .CheckProperty(x => x.Image, "path to image")
            //.CheckProperty(x=>x.WorldId,aa.Id)
            .CheckReference(x => x.World,aa )
            .VerifyTheMappings();