У меня есть родительские дочерние отношения, очень похожие на Northwind Customer / Orders, но с одним отличием, CustomerID в таблице Orders не может принимать NULL, это FK, у дочернего элемента есть один столбец PKey с именем OrderID
Я использую эту модель в привязке данных форм Windows, в верхней области указана информация о клиенте в текстовых полях, в нижней области - сетка с перечисленными заказами
Я извлекаю клиента, используя LINQ из БД, чтобы позволить пользователю редактировать информацию о клиенте или детали заказа, когда я удаляю строку из сетки заказов, затем отправляю изменения, я получаю ошибку
«Была предпринята попытка удалить отношение между клиентом и заказами, однако для одного из внешних ключей отношения (CustomerID) не может быть установлено значение Null»
после долгого поиска в интернете я использовал атрибут DeleteOnNull = True, и теперь он работает
Что не работает, но все равно выдает ту же самую ошибку, когда я добавляю новый порядок в сетку, а затем удаляю его перед SubmitChanges
Я понимаю, что когда я удаляю новую строку заказа в сетке, я только удаляю связь с клиентом, поэтому он устанавливает CustomerID = NULL для этой сущности, хорошо, теперь, как полностью удалить его из набора сущностей перед отправкой изменений чтобы избежать ошибки, я не могу использовать DeleteOnSubmit, потому что это новая сущность, не пришедшая из db, я получу исключение, если попробую, поэтому удаление строки вручную с использованием сетки не работает, что вызывает метод «Удалить» я думаю, и я не могу использовать DeleteOnSubmit, что я могу сделать?
почему это должно быть так сложно? в ADO.NET datatable намного проще, если я удаляю строку, и она случайно приходит из db, то помечает ее для удаления, если это новая строка, то она удаляет ее из коллекции, Готово! я не хочу возвращаться к наборам данных, вложив много усилий в изучение LINQ to SQL сейчас
любая помощь очень ценится
Спасибо
Bassam