私は今かなり読んでいて、以下のことはできないと思っていますが、できるだけ専門家からの確認を受けたいと思います。部分クラスのオーバーライドまたは非表示プロパティ
すべての自動生成linq-to-sqlクラスでは、値が設定されているかどうかを調べるためにすべてのプロパティを倍増することになります。たとえば、Nameプロパティを持つPersonクラスがあります
public partial class Person
{
public string Name
{
get { return this._Name; }
set
{
if (!string.IsNullOrEmpty(value))
{
value = value.trim();
this._Name = value.Substring(0, Math.Min(value.Length, 200));
}
else
throw new InvalidOperationException("Person name cannot be blank");
}
}
}
データベースに保存しても名前が最大長を超えないようにするための単純なチェックが必要です。
これは、自動生成されたクラスのほぼすべてのプロパティを2倍にすることを意味し、すべてが似たような名前になってしまうため、大混乱になります。
私はオブジェクトを自分で表現することで部分クラスの上にレイヤーを追加しようとしましたが、クラスに依存するクラスをインスタンス化するときに問題に遭遇しました...人が会社を持っていて、会社を再建する会社の人をインスタンス化する会社...
私は部分クラスで何をしようとしていますか?そうでない場合、最も効果的な選択肢は何ですか? 部分クラスを継承してプロパティをオーバーライドすることはありますか? OnChangeイベントを使用してチェックを実行しますか?
これらの2つのブログでは、非常に明確な感謝をしました。また、Entityフレームワークが今や行く方法であることは明らかです。多対多の関係を管理しやすくする必要があります。ありがとう! –