I have an object with a Flag enum with several possible “uses”. The flag enum uses the proper power of 2.
Checking if a variable has a certain flag on, I can do it using the .NET 4 HasFlag()
BUT:
If I store that flag combination as a int in database… how can I retrive the objects that have certain flag on using Entity Framework?
For example, if my object is a “Contact” type, I would like to query those of them that are actually “Customers and Friends”, being Customers and Friends flags in the ContactType Enum.
I doubt any ORM is going to have a way to adapt the HasFlags down to the appropriate SQL code for your DBMS.
What you are likely going to need to do is either write a stored procedure, or hand-crank the SQL Statement to be executed for this.
You don’t mention what DBMS you’re using – but if I assume you’re using SQL Server, you are in luck as it has the & (Bitwise AND) operator.
Practical example as T-SQL: