LINQ в SQL -запросы с использованием содержит со списком анонимных типов [Duplicate]C#

Место общения программистов C#
Ответить
Anonymous
 LINQ в SQL -запросы с использованием содержит со списком анонимных типов [Duplicate]

Сообщение Anonymous »

Я запрашиваю таблицу с двумя столбцами Varchar, которые являются столбцами ключей. У меня есть список пар клавиш, которые я хочу получить (200 строк), сгенерированные из этого: < /p>

Код: Выделить всё

var compositeKeys = prcProjects.Select(p => new
{
key1 = p.Proposal!.ProposalNm.Trim().ToUpper(),
key2 = p.ProjectNm.Trim().ToUpper()
}).ToList();
Запрос с помощью содержимого не удастся:

Код: Выделить всё

t2DestRecs = await terContext.Tert002RcFps
.Where(t => compositeKeys.Contains(new { key1 = t.RdwyCntrtId.Trim().ToUpper(), key2 = t.FinProjId.Trim().ToUpper() }))
.ToListAsync();
I get this exception:

Exception parsing command line: System.InvalidOperationException: The LINQ expression '__compositeKeys_0

.Contains(new {

key1 = StructuralTypeShaperExpression(

Structuraltype: tereextractload.models.sql.tere.tert002rcfp

valuebufferexpression: projectionbindingexpression: pellyprocemember

isnullable: false) .rdwycntrtid.trim (). Structuraltypeshaperexpression (

structuraltype: tereextractload.models.sql.tere.tert002rcfp

valuebufferexpression: projectionbindingexpression: umptyproctomemember

isnullable: false). />
}) 'не удалось перевести. Либо перепишите запрос в форме, которая может быть переведена, либо переключитесь на оценку клиента явно, вставив призыв к «Asemerable», «Asasyncenumble», «толист» или «tolistasync». См. Https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации.

Это анонимный тип только с полями строк. Я удивлен, что это не переводится. Предоставлен SQL Server не имеет простой функции для этого, но, по крайней мере, он может быть переведен в < /p>
WHERE (key1=val1 and key2=val2) OR (key1=val3 and key2=val4)
< /code>
etc.
Это кажется проблемой, которую SQL Server и EF Core должны быть в состоянии решить простым образом. Может быть, это не повседневная проблема, но она должна быть достаточно общей, чтобы привлечь внимание? Как люди работают вокруг этого? Кодирование всего, где сами предложение?

Подробнее здесь: https://stackoverflow.com/questions/797 ... mous-types
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»