Таблица сервера SQL не обновляется с помощью LINQ - PullRequest
0 голосов
/ 30 октября 2009

У меня есть база данных, которую я восстановил на SqlExpress из файла bak, который находился на моем экземпляре SQL Server Pro. Я использую Linq для взаимодействия с базой данных и могу запрашивать и обновлять некоторые из моих таблиц (я не пробовал их все). Тем не менее, у меня есть по крайней мере одна таблица, которая не будет принимать какие-либо обновления (моя таблица UserAddress). Если я выполню этот запрос

            TestDataContext td = new TestDataContext();
            UserAddress ua = (from u in td.UserAddresses
                              where u.UserID == 56
                              select u).Single();
            ua.Address1 = "ffffffffffffuuuuuuuuuuu";
            td.SubmitChanges();

ничего не происходит. Нет зафиксированного текста в базе данных, нет исключений, ничего. Это моя строка подключения (Источник данных = SNEE \ SQLEXPRESS; Исходный каталог = UsersDatabase; Интегрированная безопасность = True), хотя я пробовал ее с проверкой подлинности SQL и получил тот же результат. Кто-нибудь еще испытывал что-то подобное? Если так, что вы сделали, чтобы заставить его работать?

РЕДАКТИРОВАТЬ 1 Покопавшись в дизайнере, я заметил кое-что странное. Класс адреса выглядит так

[Table(Name="dbo.UserAddress")]
public partial class UserAddress

однако мой пользовательский класс выглядит так

[Table(Name="dbo.User")]
public partial class User: INotifyPropertyChanging, INotifyPropertyChanged

Я также заметил, что определения метода расширяемости определены для пользователя, но не для пользовательского адреса. Что дает? Я уверен, что это корень моей проблемы, но почему это произошло. Я попытался создать тестовый текстовый текст и снова перетащить на него таблицу, но он все равно не создал необходимый код.

Ответы [ 3 ]

1 голос
/ 30 октября 2009

У меня не было первичного ключа для таблицы, которую я пытался обновить в экземпляре базы данных. Поэтому Linq не создал методы расширяемости, которые обрабатывают функции вставки, обновления и удаления для этого класса сущностей. Спасибо за ответы.

0 голосов
/ 30 октября 2009

попробовать:

TestDataContext td = new TestDataContext();
            UserAddress ua = (from u in td.GetTable<UserAddresses>()
                              where u.UserID == 56
                              select u).Single();
            ua.Address1 = "ffffffffffffuuuuuuuuuuu";
            td.SubmitChanges();
0 голосов
/ 30 октября 2009

Можете ли вы отследить запрос, чтобы увидеть, что генерирует L2S? Как выглядит этот запрос? Можете ли вы получить обновление, выполнив его непосредственно в SSMS?

Есть ли другие внешние воздействия? Я видел эту проблему раньше, когда TRIGGER препятствовал обновлению.

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