Это мой первый переход на LINQ to SQL. Я создаю свой dbml в конструкторе, используя базу данных SQL Server Express. Я создаю хранимую процедуру под названием StoredProcedure1, которую я также перетащил в dbml. Затем я написал некоторый код, чтобы проверить, могу ли я обновить некоторые поля. Проблема в том, что обновления базы данных не происходят, но я вижу изменения, когда данные привязаны к DataGrid. Я понятия не имею, почему это не работает или что я делаю неправильно. Вот код:
DataClasses1DataContext data = new DataClasses1DataContext();
List<StoredProcedure1Result> result = new List<StoredProcedure1Result>(data.StoredProcedure1());
int i = 0;
foreach (StoredProcedure1Result r in result)
{
r.TestField = "A" + i.ToString();
i++;
}
// to see what has changed, set break point on next line
var changeSet = data.GetChangeSet();
// submit changes and show result in datagrid
data.SubmitChanges();
dataGrid.ItemsSource = result;
Хранимая процедура просто берет все записи из таблицы:
USE [E:\test\test.MDF]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[StoredProcedure1]
AS
SELECT * FROM TEST_TABLE
RETURN