I am using EF5 and .NET 4.5. I have one particular class that is being generated incorrectly in the database. Although it is somewhat more complicated in my website, I'll simplify;
namespace Store.Enities
{
public enum Role
{ Manager, Clerk }
public class User
{
public int Id {get; set;}
public ICollection<Role> Roles {get; set;}
}
public class StoreContext : DbContext
{
public DbSet<User> Users {get; set;}
public StoreContext()
{
Database.SetIntializer(new DropCreateDatabaseIfModelChanges<StoreContext>());
}
}
}
As you can see a user can have more than one role. For some reason I can't manage to store the roles in the database.
An enum is still a primitive type, in particular an integer. Just as your User
class can't have an ICollection<int>
that maps to something in the database, it can't have a collection of the enum.
You should define a Role
class that could look like this:
public class Role
{
public int Id {get; set;}
public Roles Role {get; set;}
}
And change the name of the enum into Roles
(or anything but Role
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With