У меня есть довольно большой объект, который мне нужно сохранить в моей базе данных. Однако, прежде чем я сохраню объект в своей базе данных, я хочу проверить, существует ли подобная запись. Поиск подобного объекта не должен охватывать все свойства, а скорее исключать несколько свойств в поиске.
Очевидный способ сделать это - создать гигантское предложение where, то есть
//Pseudocode
var expression = object.where(p => p.val1 .... );
var testvar = Test(expression);
public IEnumerable<TEntity> Test(Func<IQueryable<TEntity>, IQueryable<TEntity>> filter)
{
return filter(_context.Set<TEntity>());
}
Однако это нехорошо, учитывая тот факт, что у меня есть как минимум 10 свойств, которые мне нужно проверить, и только 2, которые мне придется исключить.
Поэтому, как мне создать простое обобщенное c (и симпатичное) выражение linq, которое достигает того, чего я хочу достичь?