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) .验证应用程序();
运行测试后,我收到以下错误: System.ApplicationException:对于属性“World”,需要相同的元素,但获得了不同类型的元素“TwitQuestNet.DataDefinitions.OrmConfig.Entities.WorldEntity”。 提示:重写类型上的ToString()以找出差异。 在FluentNHibernate.Testing.Values.PropertyFluent 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
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();