Ich habe ein ASP.NET Core-Projekt auf dem Sprung und ich habe EF7 hinzugefügt.EF7 DateTime "Angegebener Cast ist nicht gültig"
Es funktioniert alles gut mit SQL Server auf Amazon RDS, außer wenn ich ein DateTime-Feld zu meinem Modell hinzufügen und es auf die Datenbank migrieren.
Dann jedes Mal, nachdem ich mein Projekt neu starte und ich versuche, eine Entität (über DBContext und Linq) zu bekommen, bekomme ich eine wirklich, wirklich böse Ausnahmemeldung. Was könnte es an den DateTime-Werten sein, die es nicht mag?
Modellklasse:
public class Advertiser
{
// ... Standard constructors go here
[Key]
public string Key { get; set; }
public string Name { get; set; }
public bool IsActive { get; set; }
public string Email { get; set; }
public DateTime TargetDate { get; set; }
public string Comments { get; set; }
}
Kontext:
public class AdvertiserContext : DbContext
{
public DbSet<Advertiser> Advertisers { get; set; }
}
Codezeile in der Repository-Klasse, die die Ausnahme verursacht:
public Advertiser Find(string key)
{
return Context.Advertisers.Single(x => x.Key == key);
}
Zwei "gestapelt" Ausnahmen auftreten, die zuerst:
Microsoft.Data.Entity.Query.Internal.QueryCompiler[1]
An exception occurred in the database while iterating the results of a query.
System.InvalidCastException: Specified cast is not valid.
at (wrapper dynamic-method) System.Object:lambda_method (System.Runtime.CompilerServices.Closure,Microsoft.Data.Entity.Storage.ValueBuffer)
Und die zweite:
Microsoft.AspNet.Server.Kestrel[13]
An unhandled exception was thrown by the application.
System.InvalidCastException: Specified cast is not valid.
at (wrapper dynamic-method) System.Object:lambda_method (System.Runtime.CompilerServices.Closure,Microsoft.Data.Entity.Storage.ValueBuffer
Fügen Sie Ihrem relevanten Modelle/code bitte –
haben Sie Daten haben, die vor dem neuen Termin Feld hinzufügen? vielleicht haben diese Zeilen Nullwerte für das Datum, wenn ja, versuchen Sie, die Nullzeilen zu füllen –
Sehr gute Schätzung, aber ich habe das mit Beispieldaten getestet und die Tabelle in der Datenbank zwischen den Tests gelöscht. Es schien nichts mit dem Hinzufügen neuer Spalten zu tun zu haben, und es gab niemals Nullwerte. – robbpriestley