自動的に生成されたLINQ to SQLデータクラスをサブクラス化し、そのオブジェクトの変更を保存したいと考えています。私は、データベース内のテーブルClient
を持っている場合LINQをSQLデータエンティティにサブクラス化する - 間違ったアイデアか何かがない?
たとえば、私はクラスClient
を拡張し、GenerateInvoice()
または何のような振る舞いを追加ClientBO
を作成することができます。サブクラスの値を更新したり、新しいレコードを挿入したりするまで、すべてうまく動作します。そのような変更は(予想通りに)破棄されます。私が紛失しているものがあるのですか?または、これらのサブクラスを最初に作成してLINQ to SQLまたはOOの原則に違反していますか?続き
は、私のコードの単純化された例です:
public class ClientBO : Client
{
public ClientBO(Client source) : base()
{
FirstName = source.FirstName;
Lastname = source.LastName;
// ... etc ...
}
}
List<ClientBO> clientList =
(from client in DatabaseContext.Clients select new ClientBO(client)).ToList();
clientList[ someIndex ].SomeField = NewValue;
MyDatabaseContext.SubmitChanges();
+1あなたとホーガンの両方が、私が最初に検討すべき優れたアプローチです。私は既存のインフラストラクチャの変更を最小限に抑えるため、あなたと一緒に行くつもりです。 –
+1これが行く方法だと思います。クライアントクラスに「GenerateInvoice」を追加することを再考したいかもしれません:)しかし、それはここでのポイントではありません。 – Pleun
@Pleun - GenerateInvoice()は、抽象的な例であり、それには恐ろしい例があります。 –