簡単にモデル図を書いてみる 少し図に起こしてまとめてみます。 部材区分によってバリデーションする項目が違うということは、部材区分自体がそのルールを持つという捉え方ができそうなので、以下のような図となりました。 とりあえず、素直に書いてみる 値オブジェクトやエンティティを作る前に、いったん上記のようなバリデーションを素直に実装してみようと思います。 if文のネストとか、雰囲気が伝わればいいので、細かい文法とかそのへんは目をつむってください。 public void Save(string id, string name, int materialTypeId, string productType, float? size, float? consumption, float? length, float? weight) { // ここでId重複チェックを行うので、一回DBにアクセスをする