Ich habe eine SQL-Abfrage, wenn ich es in SQL Server ausführen, funktioniert es wie erwartet. Jetzt will ich diese Abfrage mit Entity Framework verwenden, etwa so:ASP.NET Entity Framework SqlQuery funktioniert nicht
ViewBag.TimeSlots = dbTimeSlots.Data.SqlQuery("SELECT a.id, concat(a.dateSlot, ' - ', a.timeSlot) as dateTimeSlot, sum(IIF(b.dateSlot is null,0,1)) as counter FROM VIP_Preview_TimeSlots as a LEFT OUTER JOIN [CP-VIP-Preview] as b ON a.dateSlot = b.dateSlot AND a.timeSlot = b.timeSlot GROUP BY a.timeSlot, a.dateSlot, a.[order], a.id Having sum(IIF(b.dateSlot is null,0,1)) < 30 ORDER BY a.[order]").ToList();
Jedoch, wenn ich es laufen, ich diesen Fehler:
The data reader is incompatible with the specified ‘CP.Models.VIP_Preview_TimeSlots'. A member of the type, 'timeSlot', does not have a corresponding column in the data reader with the same name.
Hier ist meine Klasse:
public class VIP_Preview_TimeSlots
{
public int id { get; set; }
[DisplayName("Time Slots")]
public string timeSlot { get; set; }
[DisplayName("Date Slots")]
public string dateSlot { get; set; }
public int order { get; set; }
}
public class VIPPreviewTimeSlots : DbContext
{
public DbSet<VIP_Preview_TimeSlots> Data { get; set; }
}
Ich weiß wirklich nicht, warum das nicht funktioniert, die Abfrage funktioniert, ich weiß nicht, warum Entity Framework ein Problem damit hat, wie kann ich das beheben?
Auch wenn ich versuche, eine einfache Abfrage:
ViewBag.TimeSlots = dbTimeSlots.Data.SqlQuery("SELECT id, concat(dateSlot, ' - ', timeSlot) as dateTimeSlot FROM VIP_Preview_TimeSlots").ToList();
ich den gleichen Fehler.
ja die Verkettung ist die beabsichtigte Ausgabe – user979331
Wenn ja, dann ist das Ihr Fehler, Entity Framework sucht nach 'timeSlot' und' dateSlot', nicht 'dateTimeSlot' – Enfyve