От старая добрая Википедия существует ссылка на реализацию JavaScript UUID.
Это выглядит довольно изящным, и могло, возможно, быть улучшено путем соления с хешем IP-адреса клиента. Этот хеш мог, возможно, быть вставлен в серверную сторону документа HTML для использования клиентским JavaScript.
ОБНОВЛЕНИЕ: исходный сайт имел перестановку, вот обновленная версия
Если вы хотите, чтобы это произошло непосредственно перед сохранением; вы можете переопределить SubmitChanges
и вызвать GetChangeSet ()
, чтобы получить ожидающие изменения. Найдите то, что вас интересует (например, delta.Inserts.OfType
, и внесите необходимые изменения.
Затем вызовите base.SubmitChanges ( ...)
.
Вот связанный пример , обработка удалений.
Метод Добавить
только устанавливает связь между двумя объектами: он не отмечает добавленный элемент для вставки в базу данных. Для этого вам нужно вызвать InsertOnSubmit
для экземпляра Table
, содержащегося в вашем DataContext. Проблема, конечно, в том, что нет врожденного способа доступа к вашему DataContext из описываемого вами метода.
У вас есть доступ к нему, реализовав InsertParent
в вашем DataContext, поэтому я бы сказал, что маршрут (и используйте InsertOnSubmit
вместо Add
, конечно).
EDITED Я предполагал, что частичный метод InsertParent
будет вызываться DataContext
в какой-то момент, но, глядя на мой собственный код, этот метод кажется определенным, но никогда не упоминается сгенерированным классом. Интересно, что толку?