問題タブ [sharp-architecture]
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.
c# - 散発的な「アセンブリからの型のメソッド 'get_Session' には実装がありません」
突然、私が開発した Web アプリがこのエラー メッセージを表示し始めました。ユーザーには表示されますが、私には表示されません。
このエラーは、インターフェイス アセンブリと実装アセンブリ参照のバージョンの不一致が原因で発生する可能性があることを知っています。しかし、私は長い間シャープのバージョンを更新していませんでした (このプロジェクトではまだ非常に古いバージョンを使用しています)。また、エラーが常に発生するとは限りません。アセンブリが間違っていた場合、常に失敗すると思います。
その理由は何ですか?フレームワークに調べるためのトレース/ログインツールはありますか?
これが SafeSessionStorage です。これは、バックグラウンド スレッドでの実行をサポートするために、SharpArch のものをわずかに変更したバージョンです。
エラーが発生する場所は次のとおりです。
ここで、InitSession は ISessionStorage を想定し、SafeSessionStorage が渡されるため、型チェックが失敗する場所だと思います。そして、私はアセンブリのバージョンを疑うでしょうが、私が言ったように、それは常に私にとっては機能し、時にはユーザーのためにも機能します.
c# - コンポジットIDが機能しない自動マッピング
私はSharp-Architectureフレームワークを使用しており、次のようなエンティティがあります。
次のような自動マッピングオーバーライドがあります。
この例外が発生します:
----> NHibernate.MappingException:タイプを判別できませんでした:iPFS.Core.Baan.BaanAlternateItemKey、iPFS.Core、Version = 0.0.4154.21888、Culture = neutral、PublicKeyToken = null、列の場合:NHibernate.Mapping.Column( Id)
何が間違っているのかわかりません。助言がありますか?
更新:流暢なマッピングを使用してこれをマッピングすると、正常に機能します:
c# - Hibernate 同時実行性の問題
さまざまなスレッドがリストからエンティティを取得し、ステータスを設定して、それらのアイテムで処理が開始されたという事実をマークする、軽量のキュー処理を実装する S#arp アーキテクチャ アプリがあります。
明示的なトランザクションで開始処理ビットをラップし、C# の lock() を使用しているにもかかわらず、それらが同時に開始されることがあります。
MSMQ を使用しなかったことを後悔していますか ... そうですね。しかし、この同時実行動作には困惑しています。明らかに、NHibernate のトランザクションとフラッシュについて理解できないことがあります。あなたは私を助けることができます?
関連するコードは次のとおりです。
これにより、一度に 1 つのスレッドだけが「もの」のステータスを変更できることが保証されると期待していましたが、ログにはかなり定期的にこれが記録されています。
..そして、両方のスレッドが同じことを試みて操作し、混乱を引き起こします。
私は何が欠けていますか?ありがとう。
編集:実際のバージョンでログがどのように機能するかを反映するようにコードを変更しました
sharp-architecture - Sharparchitecture の 1.5 から 1.9 へのアップグレード エラー
SharpArchitecture を 1.5 から 1.9 にアップグレードしました。
http://blog.sharparchitecture.net/post/Sharp-Architecture-19-released.aspxのガイドに従い、さまざまな DLL に対して「copy local = true」を設定していることを確認しましたが、それでもサイトの実行中に次のエラーが発生しました。
私が何を忘れたのか誰か知っていますか?
asp.net-mvc - ドメイン モデル - ビジネスの検証 / エラー
現在、プロジェクトのリファクタリングを行っていますが、よくわからないことの 1 つは、ビジネス検証エラーの処理方法です。
現在、xVal ライブラリの RulesException クラスを使用していますが、このライブラリは開発されていないので、それに応じてコードを更新する必要があると思います。ドメイン モデルでのメソッドの例を次に示します。
次に、次のようにコントローラーレベルでこの例外をキャッチします。
代替として何をお勧めしますか、それとも私が持っているものに固執することをお勧めしますか?
nhibernate - ISessionFactoryKeyProvider missing from CommonServiceLocator when upgrading NHibernate from 2.1 to 3.0
I have a ASP.NET MVC application that uses Spring.NET 1.2 for dependecy injection and NHibernate 2.1 for ORM. It has been running on MVC 3, using S#arp Architecture in a slightly modified version which we have been compiling ourselves, something I am now striving to get rid of. (I.e. I am going to start using referenced SharpArch .dlls instead of pure source code.)
The initialization of Spring is done using tips taken from here, as well as using the SpringServiceLocatorAdapter found here. NH is initialized using SharpArch's NHibernateSession.Init, which is given our two assemblypaths. The mapping is done with HBM XML files.
The decision to move to NH 3 led to a serious case of DLL Hell, due to which I of course had to update FluentNH, NH Validator, SharpArch, Spring, and Castle Windsor binaries. To get things working a lot of manual labor was needed, changing references and doing minor code fixes. This was all expected.
Now I've got the software running well enough that Spring is initialized and the DI done correctly. But when a repository tries using it's Session object, I get the following error.
Error creating object with name '' : no services of type 'SharpArch.NHibernate.ISessionFactoryKeyProvider' defined
I've been trying to figure out the cause of this for the best part of a day now. It seems to me like SpringServiceLocatorAdapter is obsolete, but I can find no information regarding that. Also, simply removing the use of it results in repositories' Sessions being null and thus NullReferenceExceptions. But as far as I know the problem could just as well be the way NH is initialized.
Hopefully someone can point me in the right direction. I'm having a hard time since I'm not the one who setup the system to begin with, and lists of breaking changes for the version upgrades are hard to find.
Thanks a lot! I will of course provide more information if needed.
fluent-nhibernate - Nhibernate.linq Session.Query は not.lazyload を無視します
私は SharpArch を使用しています。このメソッドを追加してリポジトリを拡張しました。
これで、nibernate.linq でラムダ式と仕様を使用できるようになりました。
私の問題は、エンティティ マップの Not.Lazyload を無視することです。
代わりに、sharpArc が提供する Dictionary で FindAll を使用すると、遅延ロードなしで正しく動作します。
リフレクションを使用すると、次のようになります。
ありがとうございました
multithreading - SharpArchitecture の NHibernateSession を別のスレッドと組み合わせて使用する
ASP.NET MVC 3 アプリケーションで SharpArchitecture を使用しています。すべてが素晴らしく機能します。
SharpArchitecture の NHibernateInitializer を使用して、次のようにリクエストごとに新しいセッションを初期化します。
ご覧のとおり、複数のデータベースにもアクセスしています。大丈夫です。
ここで私は問題に遭遇します。
データベースのポーリング メカニズムを実行するには、別のスレッドを起動する必要があります。私の意図は、次のようなことをすることでした:
そして、SynchronizationService を通じて、いくつかのリポジトリが呼び出されます。明らかに、セッションにアクセスしようとすると、Session が null であるため例外がスローされます。
これが私の質問です。SharpArchitecture の NHibernateSession を活用して、それまたはそのコピーをポーリング スレッド内でスピンアップするにはどうすればよいですか? SharpArchitecture で使用される組み込みの SessionManagers と SessionFactories を使用してバイパスすることなく、これを実行できることを願っています。
nhibernate - フォーラムの一時ユーザーのデータモデル
フォーラムを作成しましたが、トラフィックを増やすには、匿名ユーザーが投稿を追加できるようにする必要があることがわかりました。
アイデアは、アカウントを持っていないユーザーが投稿を書き、次のフィールドに入力できるということです (stackoverflow でできるように):
[ユーザー名][メール][メッセージ]
データモデルは次のようになります (少し単純化されています)。
問題は、既存のデータモデルを拡張して匿名ユーザーをサポートする最善の方法は何かということです。匿名ユーザーは、アドレスなどの通常のユーザーのようにすべてのフィールドを必要としません。実用的な方法は、さまざまなタイプのユーザーを記述する UserType を作成することです。または、ユーザーの継承を使用することもできますが、これにはかなりの量が必要です。やり直し。
私が忘れた 3 番目のオプションはありますか?