问题标签 [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.

0 投票
1 回答
3260 浏览

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.IList1 [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.ReferenceProperty2.HasRegistered(PersistenceSpecification 1 specification) at FluentNHibernate.Testing.PersistenceSpecification1.RegisterCheckedProperty(Property 1 property, IEqualityComparer equalityComparer) at FluentNHibernate.Testing.PersistenceSpecificationExtensions.CheckReference[T](PersistenceSpecification1 spec, Expression`1 expression, Object propertyValue, IEqualityComparer propertyComparer) at CreditoImobiliarioBB.Repository.Integration.Test.AgenciaTest.AgenciaTemVariosGerentes() 在 {OMMITED}.Integration.Test\AgenciaTest.cs :第 27 行

谢谢。

0 投票
2 回答
477 浏览

asp.net - Fluent NHibernate 在一张表中映射多个模型

我目前使用一个表来存储两种不同类型的实体,并使用表中的列来区分它们intTypeId

实体公司:

实体人:

我将这两个模型映射在一张表中,在网页上似乎运行良好,但它打破了一些持久性规范测试,抛出异常。

Company 的测试说该列"strPersonName"不能NULL,Person 的测试说该列"strCompanyName"不能NULL。如果我删除这两个地图中的任何一个,测试就会通过。

你能告诉我为什么会这样吗?

0 投票
1 回答
147 浏览

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:

0 投票
1 回答
188 浏览

postgresql - UnitTest FluentNhibernate 使用 PostgreSQLConfiguration

在设置我们的新架构时,我遵循了NHibernateMsSql2008配置一起使用的指南。

我们没有使用MsSql2008,而是使用Postgresql. 这一切的配置都很好,它保存到数据库等。

我正在尝试编写一个单元测试来测试,UoW但我无法让InMemory配置工作。

我遵循的指南使用了以下提供程序:

我的标准(非 UnitTest)配置如下所示:

我如何编写一个InMemoryConfigurationProvider使用PostgresqlConfiguration而不是SqlLiteCOnfiguration. PostgresqlConfiguration没有InMemory选项。

我是否实现了创建另一个数据库并在拆卸时将其删除的配置?或者可能有另一种方法吗?