私は、LLBLGen がデータベース構造に基づいてオブジェクトを生成するときに提供するレイアウトに慣れています。これにより、データベース内の特定の「ユーザー」テーブルに対して次のクラス ファイルが生成される可能性があります。
/EntityClasses/UserEntity.vb
/CollectionClasses/UserCollection.vb
これにより、データ アクセスの基本機能が提供されます。しかし、その上にビジネスロジックを実装したい場合、どのようにレイアウトしますか? たとえば、次のようなテーブル構造があるとします。
USER
userId
firstName
lastName
username
password
lockedOut
ユーザーをロックアウトしたい場合はどうしますか? プレゼンテーション層からどのコードを呼び出しますか? UserEntity クラスをインスタンス化して、次のことを行いますか?
User = new UserEntity(userId)
User.lockedOut = true
User.Save()
または、UserHelper (/BusinessLogic/UserHelper.cs) などの新しいクラスを作成します。これには、LockOutUser 関数が含まれている可能性があります。これにより、コードは次のように変更されます。
UH = new UserHelper()
UH.LockOutUser(userId)
それとも、基本の UserEntity クラスを拡張し、新しい機能を追加する UserEntityExt を作成しますか? したがって、プレゼンテーション層のコードは次のようになります。
User = new UserEntityExt(userId)
User.LockOutUser()
それとも…まったく別のことをしますか?
また、ディレクトリ/名前空間の構造とファイル/クラスの命名規則はどうなりますか?