Тип сущности System.Collections.Generic.IEnumerable`1 [SomeModel], предоставленный для аргумента clrType, должен быть ссылочным типом. - PullRequest
0 голосов
/ 30 мая 2018

Итак, я получаю сообщение об ошибке «Тип сущности '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);


    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...