Может ли EntityRef задерживать загрузку при назначении значений полям EntityRef ID в Linq для Sql? - PullRequest
1 голос
/ 29 июля 2010

У меня есть приложение ASP.NET MVC, которое использует Linq to Sql для доступа к данным.

Скажем, у меня есть два объекта: объект Order, который имеет внешний ключ к объекту Customer по CustomerID. Итак, в моем классе Order вы увидите два свойства: поле int CustomerID и член EntityRef, доступный для свойства Customer.

При редактировании или отправке Заказа мое приложение MVC будет обновлять поле CustomerID непосредственно из класса Заказа вместо обновления свойства Customer. Это избавляет нас от необходимости извлечения записи о клиенте, и я могу использовать код привязки модели по умолчанию для автоматического заполнения свойства, если в отправленном запросе формы есть запись customerID.

Это работает нормально, однако позже в некоторой другой части кода - скажем, в части бизнес-правил, некоторая логика получит доступ к свойству Customer объекта Order. Например:

if (order.Customer.HasPreviousOrders) then ...

Даже если поле CustomerID установлено, поле Customer имеет значение null, поэтому это бизнес-правило выдает исключение.

Я знаю, что Linq 2 Sql использует EntityRefs для отложенной загрузки. Мой вопрос: есть ли способ вызвать отложенную загрузку объекта EntityRef, если поле ID было изменено?

У нас есть динамический механизм правил, поэтому я не могу контролировать, какие объекты внешнего ключа понадобятся. Я бы предпочел не проходить через все мои контроллеры для прямой установки значений EntityRef <>.

Спасибо за помощь.

1 Ответ

0 голосов
/ 30 июля 2010

Хорошо, не берут.Похоже, то, что я пытаюсь сделать, просто невыполнимо - или, может быть, не очень хорошая идея.

Я реализовал код, поэтому я устанавливаю свойство объекта ассоциации вместо свойства ID, чтобы можно было обрабатывать бизнес-правила.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...