Я пытаюсь получить запрос, работающий на EF 2.1, к существующей базе данных.Я получаю сообщение об ошибке, из-за которого я неправильно настроил свои модели.
Мои модели:
public class Job
{
public int JobId { get; set; }
public JobStatus JobStatus { get; set; }
}
public class JobStatus
{
[Key]
public string JobStatusId { get; set; }
public string Colour { get; set; }
public ICollection<Job> Jobs { get; set; }
}
Мой запрос:
var jobs = _context.Jobs
.GroupBy(p => p.JobStatus.Colour)
.Select(g => new { colour = g.Key, count = g.Count() });
Ошибка"Недопустимое имя столбца 'JobStatusId'. EF переводит в следующий запрос:
SELECT [p.JobStatus].[Colour] AS [colour], COUNT(*) AS [count]
FROM [Jobs] AS [p]
LEFT JOIN [JobStatus] AS [p.JobStatus] ON [p].[JobStatusId] = [p.JobStatus].[JobStatusId]
GROUP BY [p.JobStatus].[Colour]
Что не так. p.JobStatusId не существует, это должен быть p.JobStatus.JobStatusId. Чтоя делаю не так?
ОБНОВЛЕНИЕ
Я добавил это в свою модель работы;
public string JobStatusFK {get; set;}
И попробовал следующее:
modelBuilder.Entity<Job>().HasOne(x=>x.JobStatus).HasForeignKey(p => p.AuthorFK);
Однако Intellisense не позволяет этого:
'ReferenceNavigationBuilder<Job, JobStatus>' does not contain a definition for 'HasForeignKey' and no accessible extension method 'HasForeignKey' accepting a first argument of type 'ReferenceNavigationBuilder<Job, JobStatus>' could be found