В ASP. NET 3.1 проекте CORE, используя EF, я пытаюсь реализовать объект, который имеет тип ICollection<Enum> type
.
. Проблема в том, что после прочтения некоторых руководств и попытки чтобы перенести его в мою базу данных, что-то кажется отключенным, я приложу скриншоты и код для большего понимания.
это класс объекта:
public class UsersCredentialsModel
{
[Key]
public string UserId { get; set; }
public ICollection<ServiceModel> Services { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Hash { get; set; }
}
Класс ServiceModel:
public class ServiceModel
{
[Key]
public string ServiceId { get; set; }
public Service Service { get; set; }
}
Класс обслуживания Enum:
public enum Service : int
{
Badoo = 0,
Tinder = 1,
Grinder = 2,
OkCupid = 3
}
Это класс AppDbContext:
public class AppDbContext : IdentityDbContext<ApplicationUser>
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<Message>().Property(m => m.Service).HasConversion<int>();
builder.Entity<ApplicationUser>().HasMany<Message>(m => m.Messages).WithOne(u =>
u.User).IsRequired();
builder.Entity<ServiceModel>().Property(m => m.Service).HasConversion<int>();
builder.Entity<UsersCredentialsModel>().HasMany(s => s.Services);
base.OnModelCreating(builder);
}
public DbSet<UsersCredentialsModel> UsersCredentialsModels { get; set; }
public DbSet<ServiceModel> ServiceModel { get; set; }
public DbSet<Message> Messages { get; set; }
public DbSet<CookieModel> CookieModel { get; set; }
public DbSet<ProjectionModel> ProjectionModel { get; set; }
}
Это изображение схемы базы данных UsersCredentialsModel:

** Я считаю, что должен быть файл с именем «ServiceId», соответствующий идентификатору второй таблицы.
и, наконец, изображение ServiceModel схема:

из того, что я понял, вы не можете реализовать ICollection типа ENUM и вам нужно обернуть его в класс, так что в основном вам нужен объект для хранения ENUM с идентификатором и другим идентификатором, который содержит ID пользователя. Проблема заключается в том, что таблица UserCredentialsModel должна содержать свойство Id ServiceId, полученное из таблицы ServiceModel. потому что у класса есть поле ICollection, но при миграции он ничего не делает