問題タブ [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
である必要があります。親フィールドと子フィールドが 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]' のオブジェクトをキャストできません。結果のスタック トレース:
(Object , Object[] , SetterCallback ) at NHibernate.Bytecode.Lightweight.AccessOptimizer.SetPropertyValues(Object target, Object[] values) at NHibernate.Tuple.Entity.PocoEntityTuplizer.SetPropertyValuesWithOptimizer(Object entity, Object[] values) -- - 内部例外スタック トレースの終了 --- 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、オブジェクトは何でも、IEventSource ソース、ブール値は、NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient( SaveOrUpdateEvent イベント) NHibernate.Event.Default.DefaultSaveEventListener で。NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent イベント) で NHibernate.Impl.SessionImpl.Save(Object obj) で FluentNHibernate.Testing.PersistenceSpecification で1.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() in {OMMITED}.Integration.Test\AgenciaTest.cs :27行目
ありがとう。
asp.net - 1 つのテーブルで複数のモデルをマッピングする Fluent NHibernate
現在、テーブルを使用して 2 つの異なる種類のエンティティを格納し、テーブルの列を使用してそれらを区別していますintTypeId
エンティティ会社:
実体人物:
これらの 2 つのモデルを 1 つのテーブルにマッピングしました。Web ページではうまく機能しているように見えますが、一部の永続性仕様テストに違反し、例外がスローされます。
Company のテストでは、列"strPersonName"
が ではないことが示さNULL
れ、Person のテストでは、列"strCompanyName"
が ではないことが示されていますNULL
。これら 2 つのマップのいずれか 1 つを削除すると、テストに合格します。
なぜこれが起こるのか教えてください。
nhibernate - 2 つのテーブルを 3 番目のテーブルでマップする Fluent Nhibernate
私はNhibernateに取り組んでおり、マッピング(CustomerMapとCustomerRoleMap)を持つCustomerとCusotmerRoleという名前の2つのクラスがあります。ここで、これら 2 つのテーブルを As Customer_CustomerRole_Mapping という名前のデータベースにある 3 番目のテーブルにマップします。テーブルCustomer_CustomerRole_Mappingには、データベースに2つの列があります.1つはCustomer_Id(プライマリキーとCustomerテーブルのForeignKeyであり、もう1つはCustomerRoleテーブルのPrimaryKeyおよびForeign KeyでもあるCustomerRole_Idです。したがって、Customer_CustomerRole_MappingをCustomerにマップするにはどうすればよいかまた、このために別のマップを作成する必要があるか、既存のクラスをマップするかを尋ねる必要があります。よろしくお願いします。
コード:
Customer.Cs :
CustomerRole.cs:
CustomerMap.cs:
CustomerRoleMap.cs:
postgresql - PostgreSQLConfiguration を使用したユニットテスト FluentNhibernate
新しいアーキテクチャをセットアップするとき、構成で使用されるガイドに従いましNHibernate
たMsSql2008
。
MsSql2008
ではなく、 を使用していPostgresql
ます。この構成はすべてうまく機能し、データベースなどに保存されます。
をテストする単体テストを作成しようとしていますUoW
が、構成を機能させることができませんInMemory
。
私が従ったガイドでは、次のプロバイダーを使用しました。
私の標準(非ユニットテスト)構成は次のようになります。
の代わりに をInMemoryConfigurationProvider
使用してテストするを作成するにはどうすればよいですか。オプションはありません。PostgresqlConfiguration
SqlLiteCOnfiguration
PostgresqlConfiguration
InMemory
別のデータベースを作成して破棄するだけの構成を実装しますか? または、おそらく別の方法がありますか?