問題タブ [irepository]

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 に答える
386 参照

design-patterns - Iリポジトリおよびエンティティごとのリポジトリ

企業会計アプリケーションのアーキテクチャを変更しています。IRepositoy<TDataModel> パターンを使用しますが、少し違いがあります。ベース IRepository<TDataModel> から派生するすべてのエンティティのインターフェイスを作成します。たとえば、私のエンティティがクライアント、製品、および注文である場合、私は

IClientRepository : IRepository<ClientModel>
IProductRepository : IRepository<ProductModel>
IOrderRepository : IRepository<OrderModel>

このアプローチを使用する理由は、いくつかのドメイン モデルの属性を BLL ではなく DAL に設定したいからです。

IRepository<> のサンプルをいくつか見ましたが、この組み合わせを使用するものは見つかりませんでした。私は知りたいのですが、これを行うには何か良いことがありますか? それはまったく正しいですか?他の長所と短所は何ですか?

前もって感謝します

0 投票する
3 に答える
1167 参照

c# - IRepository を使用した C# 共有トランザクションと NHibernate

NHibernate を使用して IRepository パターンを実装することを検討していますが、ネットを検索しても答えられないという質問があります。

PersonRepository、PersonAddressRepository、PersonAccountRepository の 3 つのリポジトリがあるとします。ここで、PersonRepository.Deactivate()、PersonAddressRepository.Deactivate()、および PersonAccountRepository.Deactivate() を呼び出す「個人の非アクティブ化」プロセスがビジネス ロジックによって指示されているとします。

私はその線に沿って何かをすることができるようになりたい..

そのため、これらの更新のいずれかが失敗した場合、プロセス全体がデータベース内でロールバックされます。現時点で、NHibernate についての私の理解では、オブジェクトごとにのみセッションを作成できるということです。

これは正しいですか、それとも間違っていますか? 複数テーブルの更新に関するトランザクションと NHibernate に関するトランザクションのベスト プラクティスは何ですか。

前もって感謝します。

0 投票する
1 に答える
237 参照

asp.net-mvc - 1つのメインasp.net上の複数の部分ビュー

asp.netのホームページに強く型付けされた部分ビューを配置しようとしていますが、機能しないようです。これが私のコードです

asp.netおよび部分ビューの新機能。

コントローラー:

リポジトリ:

IRepository:

インデックスページ:

どんな助けでもできるだけ早く感謝するでしょうTに関してお願いします

0 投票する
1 に答える
156 参照

wcf - Wcfサービス契約は他の人にも使用できますか(nhibernate asp.net)

混ぜたらwcfがちょっと壊れるかと思ってたIRepository

2 つの異なるソースが同じコントラクトを使用するためです。 - 1 つは WCF によって使用され、もう 1 つは Asp.net Nhibernate によって使用されます。

そのため、1 つまたは 2 つのものを取り出して別のレプリカを作成するのではなく、同じコントラクトを再利用したいと考えました。

例で分かりやすく...

[OperationContract]つまり、Irepositoryに何も追加しなかったので、wcfは正常に動作しますか?

0 投票する
1 に答える
175 参照

mongodb - MongoDB IRepository データベース接続

これは、MongoDB の IRepository に関して私がこれまでに持っているものであり、私が正しい方向に進んでいるかどうか疑問に思っていましたか?

このようにして、ここから継承し、必要な _collection 名を提供する PhotoRepository クラスを作成できます。

正しい場所で正しい方法でデータベースへの接続を開いていることを確認したいだけです。

0 投票する
1 に答える
1653 参照

c# - Entity FrameworkでDbModelBuilderを使用するときに接続を管理する方法は?

EF4 Fluent スキーマのラッパーを作成していIRepositoryます。IUnitOfWork

この設計では、DbCompiledModelはアプリケーションのライフサイクルごとに 1 回作成されます (NHibernate のようにISessionFactory)。は、すべてのDbCompiledModel場合と同様に、既存のデータベース接続を想定していますDbContexts

これはDbCompiledModel工場です:

DbCompiledModel作成されると、新しいDbContextを使用して作成できます。new DbContext(connection, compiledModel, true)

そのため、私は 2 つの選択肢に直面してDbConnectionいます。アプリケーションのライフサイクル全体で 1 つを共有するかDbConnection、モデル構築プロセスのためだけに存続期間の短いものを作成し、 DbConnectiona が作成されるたびに新しいDbContextものを作成します。

私が見落としていた接続を管理するためのより効果的な方法はありますか?

0 投票する
1 に答える
234 参照

entity-framework - IRepositoryパターンコレクションを使用したPOCOEntityFramework4が変更されました削除時のエラー

IRepositoryパターンは、EFとPOCOの最初のセットアップで非常にうまく機能しています。ただし、「コレクションが変更されました。列挙操作が実行されない可能性があります」という奇妙な問題が発生しています。

基本的に、次のようにObjectSetを含むリポジトリがあります。

そして、次のように実装されているIRepositoryクラスのdeleteメソッド:

それはすべて非常に簡単で、この時点まで問題はありませんでしたが、コレクションのオブジェクトを削除しようとすると、このエラーが発生します。削除メソッドにブレークポイントを設定してObjectSetにカーソルを合わせ、結果を展開してすべてが読み込まれるようにすると、DeleteObjectは正常に機能しますが、すべてのアイテムがObjectSetから読み込まれない場合、コレクション変更エラーで失敗します。

POCOやIRepositoryを使用せずにテストベッドをセットアップしましたが、正常に動作するので、基本的に、私が見逃していることが本当に明らかなものがあります。私たちは複数のプロジェクトでこのパターンを使用することに非常に深く関わっており、人々はそれを修正しようとするのではなく、それを回避しようとしています。これは私が考えていないオプションではありません。

ヘルプや洞察に感謝します。

編集:

これは非常に奇妙ですが、モデルから特定のエンティティを削除すると、このエラーはなくなりますが、巨大なモデルがあり、削除で特定のテーブル以外のすべてを最初に削除したため、追跡できません。これまでに誰かがこれに遭遇したことがあります。継承テーブル(タイプごと)を使用していますが、これが問題であることを証明することはできません。

2番目の編集:

OK型継承ごとのテーブルを除いてすべてをモデルから削除しましたが、1つを除くすべての派生型を削除して削除しようとすると、エラーが発生します。だから私の質問は、タイプ継承ごとにテーブルを使用するときに他の誰かがこの問題を抱えていたのですか?

0 投票する
1 に答える
655 参照

c# - 一般的な Factory パターンを使用した IRepository パターン

次の DBML の変更があります (Linq to SQL を DAL として使用しています)。

これにより、他の領域で Linq オブジェクトをより適切に操作できます。

IRepository パターンの実装を行ったところです。

そして、それは完璧に機能します。しかし、コンパイル時に、どの特定のテーブルを使用するのかわからない場合があります。そのために、DebtManager 用の単純なジェネリック ファクトリを作成しようとしました。

しかし、うまくいきません。「暗黙的に変換できない」と書かれていますDebtManager<NEWDEBT>DebtManager<ILinqSQLObject>、NEWDEBTがILinqSQLObjectを実装している場合、コンパイラがそれを認識しないのはなぜですか? 明らかに私はいくつかの間違いをしていますが、私はそれを見ることができません。

0 投票する
1 に答える
1147 参照

sql-server - Orchard で IRepository を int キー (IDENTITY ではない) で使用する方法

Orchard IRepository を使用してデータを管理し、db に保存しています...それが私がやろうとしていることです。

私のクラスは:

私の移行:

ID は IDENTITY ではなく IDENTITY であることに注意してください

ここで、Repository Create を呼び出すと、次の挿入が実行されます: (SQL プロファイラーで取得)

私のIDを無視し、テーブルに自動番号キーがあると(誤って)想定しているため、失敗します。

これはエラーです:

自分のIDを挿入できるように、テーブルを見て、IDがない場合はIDを想定しないようにリポジトリに説明するにはどうすればよいですか? (はい、作成する前にオブジェクト レコードに有効な Id を提供しました)

編集:コードを少し掘り下げましたが、次のように思います:

  • 正しくない ID は Fluent NHibernate によるものです: Auto Mapping Conventions

  • Orchard は、IAutoMappingAlteration を使用して誤った仮定をオーバーライドします

だから私は私の質問を次のように変更できます:

クラスのカスタム IAutoMappingAlteration を定義して、ID が ID ではないことを Orchard に説明するにはどうすればよいですか?

または(言い換えれば)

自動マッピングのドキュメントで説明されているように、オーチャードの「自動マッピング構成」はどこにありますか?

https://github.com/jagregory/fluent-nhibernate/wiki/Auto-mapping

(... 「自動マッピング構成で IsId メソッドをオーバーライドすることにより、オートマッパーが ID を検出する方法を変更できます。」 ... )