问题标签 [fluent-nhibernate-test]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - 无法将 'NHibernate.Collection.Generic.PersistentGenericSet`1 转换为 System.Collections.Generic.IList`1
我有一个域类:
使用此约定(定义为 set AsSet
)
当我运行这个测试时:
如何测试此列表?
集合应该是
AsSet
,Parent和Children字段必须是PK,FK
完全错误:
测试名称:AgenciaTemVariosGerentes 测试全名:{OMMITED}.Integration.Test.AgenciaTest.AgenciaTemVariosGerentes 测试源:{OMMITED}.Integration.Test\AgenciaTest.cs:第 22 行测试结果:失败测试持续时间:0:00:02,4093555
结果消息:测试方法 {OMMITED}.Integration.Test.AgenciaTest.AgenciaTemVariosGerentes 抛出异常:NHibernate.PropertyAccessException: Invalid Cast(检查您的映射是否有属性类型不匹配);CreditoImobiliarioBB.Model.Regional 的设置器 ---> System.InvalidCastException:无法转换类型为“NHibernate.Collection.Generic.PersistentGenericSet 1[CreditoImobiliarioBB.Model.Pessoa]' to type 'System.Collections.Generic.IList
1 [CreditoImobiliarioBB.Model.Pessoa]”的对象。结果堆栈跟踪:
at (Object , Object[] , SetterCallback )
at NHibernate.Bytecode.Lightweight.AccessOptimizer.SetPropertyValues(Object target, Object[] values)
at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValuesWithOptimizer(Object entity, Object[] values)
--- End of inner exception stack trace ---
at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValuesWithOptimizer(Object entity, Object[] values)
at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValues(Object entity, Object[] values)
at NHibernate.Persister.Entity.AbstractEntityPersister.SetPropertyValues(Object obj, Object[] values, EntityMode entityMode)
at NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess)
at NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess)
at NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess)
at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event)
at NHibernate.Event.Default.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event)
at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event)
at NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event)
at NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event)
at NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event)
at NHibernate.Impl.SessionImpl.Save(Object obj)
at FluentNHibernate.Testing.PersistenceSpecification1.TransactionalSave(Object propertyValue)
at FluentNHibernate.Testing.Values.ReferenceProperty
2.HasRegistered(PersistenceSpecification 1 specification)
at FluentNHibernate.Testing.PersistenceSpecification
1.RegisterCheckedProperty(Property 1 property, IEqualityComparer equalityComparer)
at FluentNHibernate.Testing.PersistenceSpecificationExtensions.CheckReference[T](PersistenceSpecification
1 spec, Expression`1 expression, Object propertyValue, IEqualityComparer propertyComparer) at CreditoImobiliarioBB.Repository.Integration.Test.AgenciaTest.AgenciaTemVariosGerentes() 在 {OMMITED}.Integration.Test\AgenciaTest.cs :第 27 行
谢谢。
asp.net - Fluent NHibernate 在一张表中映射多个模型
我目前使用一个表来存储两种不同类型的实体,并使用表中的列来区分它们intTypeId
实体公司:
实体人:
我将这两个模型映射在一张表中,在网页上似乎运行良好,但它打破了一些持久性规范测试,抛出异常。
Company 的测试说该列"strPersonName"
不能NULL
,Person 的测试说该列"strCompanyName"
不能NULL
。如果我删除这两个地图中的任何一个,测试就会通过。
你能告诉我为什么会这样吗?
nhibernate - 用第三个表 Fluent Nhibernate 映射两个表
我正在研究 Nhibernate,我有两个名为 Customer 和 CusotmerRole 的类及其映射(CustomerMap 和 CustomerRoleMap)。现在我想将这两个表与我们在数据库中名为 Customer_CustomerRole_Mapping 的第三个表进行映射。表 Customer_CustomerRole_Mapping 在数据库中有两列是 Customer_Id(主键以及带有 Customer 表的 ForeignKey,另一个是 CustomerRole_Id,它也是带有 CustomerRole 表的 PrimaryKey 和外键。所以我想知道如何将 Customer_CustomerRole_Mapping 与 Customer 映射和 CustomerRole。我还需要询问我必须为此创建另一个映射,否则我可以映射这些现有类。提前致谢。
代码:
客户.CS:
客户角色.cs:
客户地图.cs:
客户角色映射.cs:
postgresql - UnitTest FluentNhibernate 使用 PostgreSQLConfiguration
在设置我们的新架构时,我遵循了NHibernate
与MsSql2008
配置一起使用的指南。
我们没有使用MsSql2008
,而是使用Postgresql
. 这一切的配置都很好,它保存到数据库等。
我正在尝试编写一个单元测试来测试,UoW
但我无法让InMemory
配置工作。
我遵循的指南使用了以下提供程序:
我的标准(非 UnitTest)配置如下所示:
我如何编写一个InMemoryConfigurationProvider
使用PostgresqlConfiguration
而不是SqlLiteCOnfiguration
. PostgresqlConfiguration
没有InMemory
选项。
我是否实现了创建另一个数据库并在拆卸时将其删除的配置?或者可能有另一种方法吗?