0

CodeFirst でプロパティの読み込み順序を決定する方法があると考えていました。たとえば、以下のようなクラスがあります。

public Class
{
 public string Propert1{get;set;}
 public string Propert2{get;set;}
 public List<string> PropertList{get;set;}
}

そして、proprtyList を property1 の前にロードするように EF を作成する必要があります! (PropertyList の値を Property1_Changed で操作するため)。

4

2 に答える 2

0

次に、PropertListを読み取り専用として宣言できます。

public Class
{
 public string Propert1{get;set;}
 public string Propert2{get;set;}
 public List<String> PropertList{
       get{ 
          return genaratePropertyListFromProperty1();
       }
 }
}

ここで、prpertyListは、アクセスされたときにのみ入力されます。

于 2013-01-07T08:13:59.447 に答える
0

プロパティはまさにそれであるべきです: プロパティ。つまり、それを取得または設定するだけで、副作用はありません。一部の .Net クラスでさえこのルールに違反していることは知っていますが、それでも非常に健全な原則です。もう 1 つの原則は、オブジェクトのプロパティがどの順序で設定されているかは重要ではないということです。これは、個々のプロパティを設定すると、オブジェクトが有効な状態のままになるためです。

したがって、Classオブジェクト、EF がそれを具体化する方法が有効であると考えてください。その後、変更を開始できます。複数のプロパティが同時に変更されるようにオブジェクトを変更する場合は、1 つのプロパティを設定して他のプロパティを黙って変更するのではなく、わかりやすい名前でメソッドを呼び出す必要があります。

に基づいて異なるコンテンツを表示するリストが必要な場合は PropertList、読み取り専用 (マップされていない) プロパティまたはGetXyz()変更されたコンテンツが生成され (! を変更せずにPropertList) 返されるメソッドを作成します。

于 2013-01-07T21:03:35.907 に答える