deserialisiert in Typ war habe ich eine Enum:Enum richtig in DB gespeichert, aber nicht richtig in C#
public enum EnumSample{
Setup = 1,
Pending = 7
}
Ich habe eine Entität (ich verwende EF) in der Datenbank mit seiner EnumSample
Eigenschaft gespeichert auf EnumSample.Pending
. Die Datenbank gibt diesen Wert als 7
zurück, wenn ich abfrage. Wenn ich dieselbe Entität jedoch innerhalb von C# (mit EF) abrufe, bekomme ich eine falsche Typzuordnung (ich bekomme Setup
, wenn ich Pending
bekommen sollte). Alle IDs werden überprüft. Screenshot unten. Was könnte das verursachen?
UPDATE
die App neu starten wird mir, was ich erwarte - das Problem ist, dass die Instanz von DbContext klebt um zwischen Anfragen. Ich kann using var db = new AppContext
tun, und es funktioniert gut.
Ich habe das auf meinem UnityContainer
konfiguriert folgende:
container.RegisterType<AppContext>(new ContainerControlledLifetimeManager());
Ich habe versucht, verschiedene Lebensdauer Manager - PerHttpRequestLifetimeManager
löst nicht pro andere Führung ich gesehen habe.
Ein Beispiel für eine Service-Schicht-Methode:
public class EventService : BaseService
{
public readonly AppContext _db;
private readonly NotificationService _notificationService;
public EventService(AppContext db, NotificationService notificationService)
{
_db = db;
_notificationService = notificationService;
}
Das Verhalten, das ich brauche, ist, dass EventService
und NotificationService
die gleiche Instanz von AppContext
haben, sondern dass zwischen den Anforderungen, wird der Kontext angeordnet ist und ich frischen Zustand erhalten/neue Instanz
Können Sie vielleicht Profiler oder Extended Events verwenden und sehen, wie die von Entity Framework erzeugte Anfrage tatsächlich aussieht? Wir könnten es dann verwenden, um zu überprüfen, ob es das gleiche Ergebnis liefert wie das, mit dem Sie die Datenbank überprüft haben. – mwilczynski
Verwenden Sie Code zuerst? – vendettamit
@vendettamit Ich bin. Ich stelle fest, dass ich, wenn ich die App neu starte, bekomme, was ich erwartet habe. Ich glaube, dass es etwas mit einem abgestandenen dbContext zu tun hat ... – SB2055