私は古いデータベースシステムに対してlinq2sqlを使用しています。このシステムには、請求書、ユーザー、およびサインアップの3つのテーブルがあります。 Invoicesテーブルには、通常、UsersテーブルのUIDキーを参照するUIDフィールドがあります。しかし、UIDフィールドがSignupUsersテーブルのUIDキーを参照する必要があることを示すIsSignupビットフィールドもあります。Linq2SQLで条件付き関係を作成
私は本当にSignupUsersテーブルとの関係は気にしませんが、linq2sqlエンティティを使用しているときに "IsSignup"値をチェックするのを忘れてしまうという問題があります。私は、エンティティのInvoices-> Users関係をIsSignupビットフィールドの条件付きにしたいと思います。
私はいくつかのアプローチを試みました。最初に私はOnLoaded設定しようとした:
public partial class Invoice
{
partial void OnLoaded()
{
if (IsSignup)
{
InvoiceUser = null;
}
}
}
それは我々が行うことができない請求書back--を保存するとき、それはnullに実際にUIDフィールドを設定しようとするため、これが失敗しました。
私はDataLoadOptionsを使いこなしましたが、その作業を行う方法が見つかりませんでした。
私は単にInvoiceUsersプロパティgetterを変更できましたが、dbmlが変更されるたびに上書きされます。
私はここで運が良かったですか?