ある種の状況でエンティティを作成するためのベスト プラクティスを検索します。
サンプルがあります:
データベースには 4 つのテーブルがあります。
Table Server
id
name
...
Table Environment
id
name
Table Application
id
name
...
Table JCT_Application_Server_Environment
idApplication
idServer
idEnvironment
1 つのテーブル (JCT_Application_Server_Environment) によってリンクされた 3 つのテーブルがあります。
私のシステム(asp.net内)は、アプリケーションの「サーバー」のリストを表示する必要があります。
したがって、次のようなエンティティを使用する必要があります。
V1
class JCT_Application_Server_Environment
public idApplication
public idServer
public idEnvironment
各項目について、サーバーと環境をロードします。これは、毎回ロードするデータグリッドでは「困難」になります。私の目的としては、それは良いことではないと思います。
または、エンティティを作成したほうがよいでしょう:
V2
class JCT_Application_Server_Environment
public ApplicationName
public ServeurName
public EnvironmentName
あなたは必要なものを持っています。シンプルに、最小限にとどめてください。さらに必要な場合は、時間をかけてください。
多くのプロパティがある場合、エンティティを実行するのに時間がかかります。また、すべてのプロパティは、別のエンティティ (元のアプリケーション/サーバー/環境) で既に作成されています。
または多分
V3
class JCT_Application_Server_Environment
public Application //As Application entity
public Server //As Server entity
public Environment //As Environment entity
Sub New(row as datarow) //each New do a GetElementById on Database
me.Application = New Application(row("idApplication"))
me.Server = New Server (row("idServer "))
me.Environment = New Environment (row("idEnvironment "))
最初は読み込みに時間がかかりますが、必要なものやそれ以上のものを手に入れることができます。Datagrid は、サブ値 (Server.Name/Environment.Name) を取得することを知る必要があります。
最初のものは主にインポート/エクスポート システムで使用されます。webView の場合、gridview のデータバインドを簡単に行うことを好むため、私が使用したバージョンではありません。
2 番目の方がより頻繁に使用されますが、エンティティは 1 つのことだけを目的としています。1 つのグリッドビューに対して 1 つのエンティティ。実際の状況は、2 番目のバージョンに適合します。2番目と3番目のどちらが良いか知りたいだけです。.net の経験を持つ開発者がよく行うこと。
他のオプションがある場合は、回答として投稿できます。
私の実際のプロジェクトでは、V3 を使用することにしましたが、コンテナーにのみ使用しました。データはDALで埋められます。
ダルは次のようなことをします
function GetList() as List(Of JCT_Application_Server_Environment)
Get List of Application_Server_Environment containing id's
for each item
grab Application, Server and Envirenment by id
create a new JCT_Application_Server_Environment with those 3
add to list of JCT_Application_Server_Environment
return list