2013-03-14 3 views
0

У меня есть 2 таблицы в SQL, у которых есть поле под названием Selection_ID. Я хочу удалить все строки с помощью Selection_ID = inpSelectionID с использованием Linq-to-SQL.Удалить из 2 SQL-таблиц с SilverLight Linq-to-SQL

Мои столы: enter image description here

Моя C# функция:

void buttonDeleteSelectionList_Click(object sender, RoutedEventArgs e, Canvas canvasAdvancedSearchFieldResults, int inpSelectionID) 
{ 

    PositionServiceReference.PositionServiceClient service = new PositionServiceReference.PositionServiceClient(); 
    service.DeleteSelectionCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(service_DeleteSelectionCompleted); 
    service.DeleteSelectionAsync(inpSelectionID); 
} 

My Service Code PositionService.svc.cs:

[OperationContract] 
void DeleteSelection(int inpSelectionID) 
{ 
    PositionDataClassesDataContext context = new PositionDataClassesDataContext(); 

    context.Lloyds_Selection.DeleteOnSubmit(inpSelectionID); 
    context.SubmitChanges(); 

    context.Lloyds_Selection_Vessels.DeleteOnSubmit(inpSelectionID); 
    context.SubmitChanges(); 
} 

ответ

1

DeleteOnSubmit requi res объект объекта как параметр, поэтому вы не можете удалить элемент, не выбрав его сначала из базы данных. Существует также метод DeleteAllOnSubmit, но он также требует IEnumerable объектов. Вы можете использовать его так:

context.Lloyds_Selection.DeleteAllOnSubmit(context.Lloyds_Selection.Where(l => l.Selection_ID == inpSelectionID)); 

Однако, вы можете использовать DataContext.ExecuteCommand выполнить необработанный SQL против базы данных:

string command = string.format("DELETE FROM Lloyds_Section WHERE Selection_ID = {0}", inpSelectionID"); 
context.ExecuteCommand(command); 
+0

Спасибо! Просто то, что я искал ;-) – Solo

Смежные вопросы