Я новичок в LINQtoSQL.Я решил изучить его, потому что у меня не было большого опыта написания хранимых процедур на SQL, и я подумал, что LINQtoSQL может быть альтернативным способом доступа к данным.Так или иначе, я создал простое приложение ASP.NET с парой простых веб-форм, которые собирают некоторые данные от пользователя.
Затем я добавил объект данных LINQtoSQL (файл dbml) в свой проект.Подключил его к источнику данных в моей базе данных SQL и позволил оператору OR / Designer создать магию для создания объекта для меня.Все казалось слишком хорошим, чтобы быть правдой.Пока я не сохранил данные, собранные в моих веб-формах, обратно в базу данных.Именно здесь я начал узнавать о проблемах сериализации с LINQtoSQL.
В частности, мои веб-формы собирают данные в несколько этапов.Как и любой разработчик ASP, я храню эти данные в ViewState по мере прохождения Page LifeCycles.Наконец, когда в моем ViewState есть все необходимые данные, нажмите кнопку отправки, чтобы отправить их в базу данных, используя объектный объект LINQtoSQL.И именно здесь я начинаю получать исключение сериализации:
System.Runtime.Serialization.SerializationException: введите 'System.Data.Linq.ChangeTracker + StandardChangeTracker' в сборке 'System.Data.Linq, версия = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089 'не помечен как сериализуемый.
Я посмотрел в Интернете.Я знаю, что моя единственная сущность LINQtoSQL (которую я назначаю из моего ViewState) является seiralizable, так как она украшена обязательными атрибутами DataContract и DataMember.После долгих чтений я попробовал решение, данное Брейном Орреллом, по следующей ссылке, которая требует предоставления собственного сериализатора.Это кажется очень сложным для того, чего я пытаюсь достичь (простая запись части данных в базу данных), и исключения сериализации все еще не исчезли.Хотя, как ни странно, моя сущность теперь правильно записывается в базу данных:
http://borrell.parivedasolutions.com/2008/02/linq-to-sql-updating-in-aspnet-right.html
Мой вопрос заключается в том, как правильно и просто передать данные ViewState сущности LINQtoSQL, чтобыэто может быть записано в базу данных.И если кто-то знает конкретный, но хороший пример для подражания, я буду признателен за это.В противном случае я могу опубликовать код из моего собственного проекта, и мы можем перейти оттуда.
Спасибо, если заранее.
Fike