エンティティ フレームワークを使用して、ASP.Net でホテル登録/請求アプリケーションを開発しています。登録者への請求書の作成に関して、私のクライアントには多くの風変わりな基準があります。1 泊 1 ベッド (かなり標準的な..) の請求システムの代わりに、顧客は、年齢、訪問する特定の日付、部屋のタイプ (ダブルベッド、シングルベッドなど) または彼らが参加している会議、または4つすべて...
これが私の図です:
比較的若いコーダーであるため、「ルール」テーブルのどこかで何かが欠けているように感じます。私がやろうとしているのは、管理者が任意の数の ConditionalStatements を作成できるようにすることです ("Age > 5" または "Age < 10" ここで、"Age" は Statement.Value、'>' は Condition.Value、および'5' は ConditionalStatement.Value) であり、任意の数のそれらをリンクして、「ルール」を作成します。次に管理者は、Rule をさまざまな RateSchedules に関連付けます。これにより、アプリケーションは、滞在を登録した顧客の請求書を生成できるようになります。
私は正しい方向に進んでいるように感じます。このソリューションの大部分は、必要なすべての方法で機能しますが、何かが正しくないようです。「ルール」の作成に関して2つ質問があります。
「ルール」の設計に関する限り、私は何を間違っていますか? 管理者が新しい RuleSet.ID を作成するたびに新しい RuleSet.ID を生成するのは間違っていると感じます.これはプログラムで行うべきことですか? この規則のプロセスを完全に再考する必要がありますか?
Entity Framework/足場の観点から、データベースに新しいルールを追加するための最良の方法は何ですか? デフォルトのスキャフォールディングでは一度に 1 つの行を挿入できますが、実際にルールを作成するには、RuleSet.ID を複数の ConditionalStatement.ID に関連付ける必要がありますが、これを EF で直感的に行う方法がわかりません。足場..
正しい方向へのポインタは高く評価されます! ありがとう :)
編集: 質問への回答に基づいて再設計しましたが、調査中にMicrosoftのビジネスルールエンジンに出くわしました:http: //msdn.microsoft.com/en-us/library/aa561216.aspx および数式評価器: http://ncalc.codeplex.com/ 他の誰かが将来この質問を見つけた場合に備えて、これらのリンクが役立ちます。みんな助けてくれてありがとう!