問題タブ [specification-pattern]
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.
domain-driven-design - 値オブジェクトとしての DDD モデリング設定
DDD 方式でアプリケーションを構築しようとしています。集計ルートが、作成者、コメント作成者、コメント、ステータスなどの他の集計を持つ「ページ」であると想像してください...
ページには、次のようなさまざまな設定を含めることもできます。
- 専用ページ
- コメントを許可します
- 匿名のコメントを許可する
- x 日付後にロック
- ナメクジ
これらの「設定」をモデル化する最善の方法を検討しようとしています。現在、個々の設定を値オブジェクトとして持つ設定コレクションを探しています。ご覧のとおり、これらの一部は本質的にブール値であり、日付などの特定の値を含むものもあります。何十もの設定があり、一部はデフォルトである可能性がある場合、特定の設定ごとに「設定」コレクションをモデル化しますか、それとも適用可能な設定を含むコレクションとしてモデル化しますか?
この問題に取り組むための「より良い」または標準の DDD 方法はありますか? ここで仕様パターンを使用することを検討していましたが、実際には当てはまらないという結論に達しました
生意気な2番目の質問で申し訳ありません....
ページは多くのステータス (下書き、公開済み、スケジュール済み、アーカイブ済みなど) のうちの 1 つを持つことができますが、一度に 1 つのステータスしか持つことができません。これをモデル化する最良の方法に関して同様の質問。ステータスはアイデンティティを持つものを表すため、現時点ではステータスをエンティティとして実装しました。これをワークフローまたはステータス履歴としてモデル化する方が良いのではないかと思っていました。
c# - フィルタリングや何かをしない空の仕様を取得する方法は?
オブジェクトのリストを返す(そしてそれらをDTOからビジネスにマップする)ベースコントローラーがあります
子コントローラーが仕様を適用することを決定した場合 (フィルターまたは何かを含める)、GetSpecification()
メソッドをオーバーライドすることで実行できます。
しかし、デフォルトでは、基本クラスではオブジェクトをフィルタリングしたくありません。
私はardalis仕様を使用していますが、それは一般的IQueryable
なものである可能性があります...
実際には次のように述べています。
エラー CS0144 抽象型またはインターフェイス '仕様' のインスタンスを作成できません
c# - .Net Core 3.1 Web Api の仕様パターン
検索方法には指定クエリを使用しています。これには、search、orderBy、groupBy が含まれます。Search と Orderby は問題ありませんが、この行の groupBy メソッドで問題が発生しますquery.GroupBy(spec.GroupBy).SelectMany(x => x)
次のコードを参照してください。
ApplyGroupBy(x => x.ShopId); で ShopId を使用して groupBy を適用したいです。
そして、このような BaseSpecifcation クラス
FindWithSpecificationPattern および GetQuery メソッド:
この行で問題が発生しました
クエリ = query.GroupBy(spec.GroupBy).SelectMany(x => x);
例外はスローしませんが、結果を取得できません。デバッグすると、エラー メッセージが表示されます
Query='((Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable<Nail.Management.Domain.Entities.Catalog.EmployeeType>)query).DebugView.Query' は、タイプ 'System.InvalidOperationException' の例外をスローしました
Google で何度も検索しましたが、指定パターンで GroupBy を実装する例が見つかりません。助けてください、どうもありがとう!