2013-05-02 2 views
0

Мне нужно проверить параметр, если он содержит какие-либо значения, прежде чем я удалю его. Параметр находится в другой таблице, а значения находятся в другой таблице. Я использую лямбда-выражение, но просто не могу найти правильный путь. Это получает данные из CalculationParameters таблицы:Подтвердить, если данные содержат данные из другой таблицы перед удалением

Factory.Definitions.CalculationParameters.List(); // List() lists all the data. 

И это получает данные из CalculationParametersValues ​​таблицы:

Factory.Definitions.CalculationParametersValues.List(); // List() lists all the data. 

Теперь, если "Id" (от CalculationParameter) равен "CalculationParameterId" (от CalculationParametersValue) означает, что CalculationParameter содержит значения, и я не могу его удалить.

Есть ли у кого-нибудь идеи помочь мне здесь?

ответ

0

, если я понимаю, что вы хотите проверить, если Идентификаторы в CalculationParameters существуют в CalculationParametersValues ​​

вы можете попробовать это

bool exist =Factory.Definitions.CalculationParameters.List() 
      .Any(a=> Factory.Definitions.CalculationParametersValues.List().Any(b=>b.Id ==a.Id)) 
+0

Это происходит: ошибка времени компиляции: Лучший перегруженный метод подходит для «System.Collection.Generic.List .Contains (Project.Folder.Project.Folder.Class) 'имеет некоторые недопустимые аргументы – Etrit

+0

@ user2302998 Я редактирую свой ответ – Akrem

0

Я понимаю, что вы хотите, чтобы удалить все CalculationParameters, которые не имеют никаких записей в CalculationParametersValues , Если это так, попробуйте что-то вроде этого:

CalculationParameters.RemoveAll(p=> !(CalculationParametersValues.select(c=> c.CalculationParameterId)).contains(p.CalculationParameterId)) 
Смежные вопросы