0

C# の Winforms で EF を使用する。部分クラスを使用して、完全なカスタム プロパティをエンティティに追加したいと考えています。すべてのエンティティには、検証などの部分クラスが既にあるので、必要なプロパティを追加するだけです。完全なプロパティとは、ゲッターとセッターを備えたプロパティを意味するため、計算された/読み取り専用のプロパティだけではありません。私は主に、設計が不適切であるか、他の問題を抱えているいくつかの DB マップされたプロパティを直接操作することを回避するために、これを行いたいと考えています。たとえば、1 つのケースは次のようになります。

// entity class, generated
public partial class Customer
{
  public string Spot {get;set}
}

// partial class, manually changed
public partial class Customer
{
  public int? xxxSpot 
          { get   {  return Int32.Parse(Spot.Trim()); }  // some code omitted 
          { set   { Spot = value.ToString().PadLeft(5); }
}

したがって、私のカスタム プロパティは、エンティティの既存の DB マップ プロパティを中心に構築されます。これらのカスタム プロパティを通常のプロパティと同じように使用したいと思います。つまり、UI コントロールなどにバインドします。私は1つを試しましたが、これまでのところうまくいきます。これは良い考えですか?そうでない場合、なぜですか?また、これを行う際に他に何を考慮する必要がありますか?

4

1 に答える 1

1

あなたはあなた自身の質問に答えました - それは機能し、そうしない理由はありません. エンティティの設計を改善したい場合は、マップされたプロパティの可視性を変更して、他のクラスが追加のロジックを持つカスタム プロパティのみを使用するようにすることもできます。

于 2012-06-04T08:30:20.943 に答える