I have a code first db using EF 6.
I'm facing the similar issue. I tried all the answers but none of them worked out.
My entities are:
public class UtilizationSummary
{
public DateTime SummaryDate { get; set; }
public Int32 ProcessKey { get; set; }
public virtual ProcessInfo ProcessInfo { get; set; }
public Guid MachineId { get; set; }
public virtual Machine Machine { get; set; }
}
public class ProcessInfo
{
public virtual Machine Machine { get; set; }
public virtual Session Session { get; set; }
}
public class Machine
{
public Guid Id { get; set; }
public String Sid { get; set; }
}
Mappings are as follows:
public class UtilizationSummaryMap: EntityTypeConfiguration<UtilizationSummary>
{
this.HasKey(pus=> new { pus.MachineId, pus.SummaryDate, pus.ProcessKey });
this.Property(pus=> pus.MachineId).IsRequired();
this.HasRequired(pus=> pus.Machine).WithMany().HasForeignKey(ma => ma.MachineId);
}
Accessing using:
[HttpGet]
[ODataRoute("UtilizationSummary")]
[EnableQuery]
public IQueryable<UtilizationSummary> FilterUtilizationSummary()
{
var expression = ...some expression..;
var result = db.UtilizationSummary.Where(expression);
return result;
}
The following exception is being thrown at 'return result':
"message":"Invalid column name 'Machine_Id'.","type":"System.Data.SqlClient.SqlException"
Printing result
gives:
SELECT
[Extent1].[ProcessKey] AS [ProcessKey],
[Extent1].[MachineId] AS [MachineId],
[Extent1].[SummaryDate] AS [SummaryDate],
[Extent1].[Machine_Id] AS [Machine_Id]
FROM [ProcessUtilizationMinuteSummary] AS [Extent1]
I'm not getting why it is trying to access Machine_Id
though i have given the mapping for foriegn key.
Thanks in advance :)