Я использую linq2sql против старой системы баз данных.В этой системе есть три таблицы: Счета-фактуры, Пользователи и RegistrationUsers.Таблица Invoices имеет поле UID, которое обычно ссылается на ключ UID в таблице Users.НО, у этого также есть битовое поле IsSignup, которое указывает, что поле UID должно ссылаться на ключ UID в таблице RegistrationUsers.
Меня не особо волнует связь с таблицей RegistrationUsers, но у нас есть проблема, когда очень легко забыть проверить значение IsSignup при использовании сущностей linq2sql.Я бы хотел, чтобы отношения Invoices-> Users в сущностях были обусловлены битовым полем IsSignup.
Я попробовал несколько подходов.Сначала я попытался настроить OnLoaded:
public partial class Invoice
{
partial void OnLoaded()
{
if (IsSignup)
{
InvoiceUser = null;
}
}
}
Это не удается, потому что он пытается установить нулевое значение поля UID при сохранении счета-фактуры, что мы не можем сделать.с DataLoadOptions, но также не смог найти способ заставить это работать.
Я мог бы просто изменить метод получения свойства InvoiceUsers, но тогда он будет перезаписываться каждый раз, когда изменяется dbml.1013 * Мне просто не повезло?