Generi c выражение, чтобы проверить, существует ли объект с конкретными столбцами в БД - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть довольно большой объект, который мне нужно сохранить в моей базе данных. Однако, прежде чем я сохраню объект в своей базе данных, я хочу проверить, существует ли подобная запись. Поиск подобного объекта не должен охватывать все свойства, а скорее исключать несколько свойств в поиске.

Очевидный способ сделать это - создать гигантское предложение 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, которое достигает того, чего я хочу достичь?

...