Linq с EF core 2.2 Условие, с которым пункты FK и PK - PullRequest
0 голосов
/ 06 апреля 2020

Привет, у меня возникла проблема с использованием предложений where с FK и PK, так как FK из InstalltionÍnformation является объектом. И я не могу этого понять. i => i.ImportRunID является запрашиваемым и не может преобразовать в int ImportRuns.ImportRunId

var Aggnone = context.ImportRuns.Select(IR => new
                        {
                            ImportRunId = IR.ImportRunId,
                            ExtractedDate = IR.ExtractedDate,
                            ProcessDate = IR.ProcessDate,
                            ProcessResult = IR.ProcessResult,
                            FailureDescription = IR.ProcessResult,
                            InstallationInformationIDFK = context.InstallationInformation.Select(II => new
                            {
                                InstallationInformationID = II.InstallationInformationID,
                                LicenceKey = II.LicenceKey,
                                ProductVersion = II.ProductVersion,
                                ProductName = II.ProductName,
                                CompanyName = II.CompanyName,
                                Timestamp = II.Timestamp
                            })
                        }).Where(x => x.ImportRunId == context.InstallationInformation.Select(i => i.ImportRunID);

Эквивалент в MS SQL (Что должно быть)

 Select * from ImportRuns as IR
 left join InstallationInformation as II 
 on IR.ImportRunId = II.ImportRunId

Есть ли способ решить это?

1 Ответ

0 голосов
/ 06 апреля 2020

попробуйте использовать

context.InstallationInformation.FirstOrDefault(i => i.ImportRunID).InstallationInformationID 

вместо

context.InstallationInformation.Select(i => i.ImportRunID)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...