Я хотел бы знать, будет ли следующее объединение правильным вариантом использования?
dbContext.Recipients.Include(nameof(Recipient.User))
.Where(r => r.EnvelopeId == dbEntry.EnvelopeId)
.Update(r => new Recipient
{
UserId = dbContext.Users.Where(u => u.LowerEmail == r.LowerEmail)
.Select(u => u.Id)
.FirstOrDefault()
});
Я получаю следующую ошибку:
The multi-part identifier "Project5.C1" could not be bound.
The multi-part identifier "Project5.C2" could not be bound. --->
System.Data.SqlClient.SqlException: The multi-part identifier "Project5.C1" could not be bound.
The multi-part identifier "Project5.C2" could not be bound.
Что очевидно, если мы посмотрим натекст команды:
UPDATE A
SET A.[UserId] =
CASE WHEN ([Project5].[C1] IS NULL) THEN cast('00000000-0000-0000-0000-000000000000' as uniqueidentifier) ELSE [Project5].[C2] END
FROM [dbo].[Recipient] AS A
INNER JOIN ( SELECT
[Extent1].[Id] AS [Id],
[Extent1].[UserId] AS [UserId],
[Extent2].[Id] AS [Id1],
FROM [dbo].[Recipient] AS [Extent1]
LEFT OUTER JOIN [dbo].[User] AS [Extent2] ON [Extent1].[UserId] = [Extent2].[Id]
WHERE [Extent1].[EnvelopeId] = @p__linq__0
) AS B ON A.[Id] = B.[Id]
Это то, что я пытаюсь достичь (обновление сущности со значениями в БД) с помощью свойства навигации, допускающего обнуляемость?
(Таблица получателей имеетобнуляемое свойство навигации в таблице Users)