2016-06-21 2 views
0

Für assign mutiple Typ Benutzer beeinflussen, verwende ich Usertype-Enumeration, die mit Fahnen schmücken Attribut als Brache:Flaggen Enum Eigenschaft where-Klausel nicht auf SQL-Abfrage in Entity Framework Kern

[Flags] 
public enum UserType 
{ 
    Default = 0, 
    Moderator = 1, 
    Doctor = 2, 
    Administrator = 4, 
} 
public class User : IdentityUser 
{ 
    public bool Suspended { get; set; } 
    public bool Deleted { get; set; } 
    public UserType UserType { get; set; } 
} 

Und zuweisen usertype an Benutzer,

user.UserType = UserType.Moderator | UserType.Administrator; 

wenn unter Abfrage wird ausgeführt,

var t = dbContext.Users.Where(e => e.UserType.HasFlag(UserType.Doctor)).ToList(); 

Diese Abfrage sQL erzeugen, wie man sehen kann Es gibt keine Spur von dem Ausdruck in der Abfrage. ef Abfrageergebnis ist jedoch in Ordnung, aber das Problem ist, dass alle Benutzer Last memroy und kein Filter auftreten in der Datenbank, in der Tat Abfrage im Speicher auftreten

SELECT [e].[Id], [e].[PasswordHash], [e].[PhoneNumber], [e].[PhoneNumberConfirmed] 
, [e].[SecurityStamp], [e].[Suspended], [e].[TwoFactorEnabled],[e].[UserName], [e].[UserType] 
FROM [AspNetUsers] AS [e] 

dieses Problem nicht in ef existiert 6.

+1

Was ist die Frage? – svick

Antwort

0

Diese Problem wurde zuvor in Github ausgelöst, und dies hinzugefügt, um den Rückstand Meilenstein am 19. August 2015 Und jetzt wird nicht unterstützt

Verwandte Themen