MVC Linq to SQL Update объекта в базе данных - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть таблица с именем Code в моем текстовом данных LINQ to SQL.У меня также есть класс с именем Codes в моей папке Models.Что я хочу сделать, это сохранить обновленные коды объектов в моей таблице базы данных Code.Это возможно?

В моем контроллере я передаю отредактированный объект в мою модель.Мой файл CodesRepository содержит следующее:

public Codes EditCode(Codes CodeToEdit)
        {
            private EventsDataContext _db = new EventsDataContext();
            Codes C = new Codes();
            C = CodeToEdit;

            _db.Codes.InsertOnSubmit(C); //error here, something about invalid arguments
             //InsertOnSubmit is for adding a new object, but I don't know the syntax
             // for editing an existing object.  

            _db.SubmitChanges();


        }

Вероятно, это неправильный способ сделать это, поэтому кто-то может указать мне правильное направление?Мне даже нужен класс с именем Codes или мне нужно как-то просто использовать мою таблицу базы данных?Благодарю.


Решение : Я решил перейти с Linq на SQL на Entity Framework, и он работает намного лучше.Таким образом, мне не нужно определять мой класс Codes, поскольку он поступает прямо из базы данных, и я смог удалить файл класса Codes.

1 Ответ

1 голос
/ 08 декабря 2011

Вы должны использовать DataContext.Attach, когда получите объект обратно, который соответствует существующей строке в базе данных.Для работы оптимистичного параллелизма Linq-to-sql это требует наличия либо исходного, несохраненного объекта, либо наличия в базе данных столбца TimeStamp.Последнее предпочтительнее, так как требует только одного дополнительного поля (вероятно, через скрытое поле в веб-форме).

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