Итак, я получаю сообщение об ошибке «Тип сущности 'System.Collections.Generic.IEnumerable`1 [SomeModel]', предоставленный для аргумента 'clrType', должен быть ссылочным типом.", Когда я пытаюсь добавить миграцию.Я понятия не имею, что и где здесь проблема.Кто-нибудь может помочь, пожалуйста?Не знаю, что не так с классом UserRequest.
Я видел несколько похожих вопросов, но была проблема с контроллерами наследования и аналогичными.
Спасибо!Любая помощь приветствуется!
public class UserRequest
{
[ScaffoldColumn(false)]
[System.ComponentModel.DataAnnotations.Schema.DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public int UserAccountId { get; set; }
public RequestCode RCode { get; set; }
public string CodeText { get; set; }
}
public class UserAccount
{
[ScaffoldColumn(false)]
[System.ComponentModel.DataAnnotations.Schema.DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
public int UserAccountId { get; set; }
[Required(ErrorMessage = "First Name is required.")]
public string FirstName { get; set; }
[Required(ErrorMessage = "Second Name is required.")]
public string LastName { get; set; }
[Required(ErrorMessage = "Email is required.")]
[RegularExpression(@"^([\w-\.]+)@((\[[0-9]{1,3]\.)|(([\w-]+\.)+))([a-zA-
Z{2,4}|[0-9]{1,3})(\]?)$",
ErrorMessage = "Please enter valid email.")]
public string Email { get; set; }
[Required(ErrorMessage = "Username is required.")]
public string UserName { get; set; }
[Required(ErrorMessage = "Password is required.")]
[DataType(DataType.Password)]
public string Password { get; set; }
[Compare("Password", ErrorMessage = "Please confirm your password.")]
[DataType(DataType.Password)]
public string ConfirmPassword { get; set; }
public Role MyRole { get; set; }
public UserAccount()
{
MyRole = Role.Customer;
}
}
public class Administrator : UserAccount {
public IEnumerable<UserRequest> ReceievedRequests { get; set; }
}
public class Customer : UserAccount
{
public int Spent { get; set; }
public ShoppingCart Cart { get; set; }
public virtual IEnumerable<UserRequest> UserRequests { get; set; }
}
DataAccessLayer
public class TalonContext : DbContext
{
public TalonContext() { }
public TalonContext(DbContextOptions<TalonContext> options) :
base(options) { }
public DbSet<UserAccount> Users { get; set; }
public DbSet<UserRequest> Requests { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Administrator>()
.HasMany(r => r.ReceievedRequests);
//modelBuilder.Entity<Customer>()
// .HasOne(r => r.UserRequests);
modelBuilder.Entity<Customer>() <--fixed
.HasMany(r => r.UserRequests);
modelBuilder.Entity<UserRequest>()
.HasAlternateKey(k => k.UserAccountId);
}
}