Ich denke meine Abfrage funktioniert nicht wegen der Enum-Flag, das ich habe.Wie Verwenden von Enum Flags mit EF 6.1.3?
[Flags]
public enum Permissions
{
None = 0,
Read = 1,
Write = 2,
Delete = 4,
Full = 8
}
dbContext.UserStorages.FirstOrDefault(x => x.Permission.HasFlag(Permissions.Write));
In meiner SQL-Datenbank ist die Spalte eine Spalte "int". und hat jetzt einen Wert von "8", wenn ich es in Permissions ändere. Dann werde ich den Datensatz zurückbekommen.
nein EF übersetzt HasFlag nicht in SQL, Sie müssen es selbst tun, bevor Sie es an die Abfrage übergeben: myFlag = None | Lesen und übergeben Sie myFlag an die firstOrDefault –
Sie können jedoch bitweise Operatoren verwenden und sie werden übersetzt (z. B. "x => (x.Permission & Permissions.Write)! = 0') – Pawel