在删除之前验证数据是否包含来自另一个表的数据

时间:2013-05-02 13:25:04

标签: c# validation

如果参数在删除之前包含任何值,我需要验证它。参数位于另一个表中,值位于另一个表中。 我正在尝试使用lambda表达式,但只是找不到正确的方法。 这将从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包含值,我无法删除它。

有没有人有任何想法帮助我?

2 个答案:

答案 0 :(得分:0)

如果我知道您要检查CalculationParametersValues中是否存在CalculationParameters中的ID

你可以试试这个

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

答案 1 :(得分:0)

我知道您要删除所有在CalculationParametersValues中没有记录的CalculationParameters。如果是这样,尝试这样的事情:

CalculationParameters.RemoveAll(p=> !(CalculationParametersValues.select(c=> c.CalculationParameterId)).contains(p.CalculationParameterId))