Я думаю, что мой запрос не работает из-за флага enum, который у меня есть.Как использовать флаги Enum с 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));
В моей базе данных sql столбец «int». и прямо сейчас имеет значение «8», если я изменю его на Permissions.Full, тогда я верну запись.
no EF не переведёт HasFlag в SQL, вы должны сделать это сами, прежде чем передавать его в запрос: myFlag = None | Чтение и передача myFlag в firstOrDefault –
Вы можете использовать побитовые операторы, и они будут переведены (например, 'x => (x.Permission & Permissions.Write)! = 0') – Pawel