Следующий код для работы.
db.DBUsers.InsertOnSubmit(new DBUser
{
AllTheStuff = valuesBeyondYourWildestDreams
}
);
db.SubmitChanges();
Мое предположение - это что-то изменившееся в базе данных, и подача не выполняется, потому что отображение отключено.
Поскольку визуализатор linq не работает для меня (бонусные баллы за его исправление), я хочу найти другой способ узнать, что именно происходит, и почему подача не работает молча.
Обновление
Я попытался использовать
db.SubmitChanges(ConflictMode.FailOnFirstConflict);
чтобы получить исключение, но похоже, что работа работает. За исключением того, что в базе данных нет нового нового объекта.
Вы можете попробовать использовать SQL Server Profiler, если это опция - запустить новую трассировку, подключиться к соответствующей базе данных, а затем выбрать, какие события вы хотите захватить.
Для базовой отладки LINQ я обнаружил, что SP: StmtCompleted (в разделе Хранимые процедуры) и SQL: StmtCompleted (в TSQL) достаточно, чтобы показать вам, что пытается выполнить SQL LINQ.
Если вы обнаружите, что получаете множество нежелательных команд, вы можете отфильтровать их. Например, я отфильтровываю все, что происходит из базы данных msdb и master.
Для начала я бы сделал:
db.Log = Console.Out;
Вы также можете использовать LINQPad - скопируйте туда свой код LINQ, обратитесь к базе данных и поставьте дампы для эффективной отладки LINQ.
Это хорошо работает при отладке linq для sql для нас.
Он отправляет информацию журнала в окно вывода.