Ошибка при установлении отношения «один ко многим» с удостоверением asp.net mvc - PullRequest
0 голосов
/ 17 июня 2019

Я использую asp.net mvc identity. Я пытаюсь установить отношения между приложением пользователя и блогом. Но кое-что мне не хватает, и я получаю ошибку.

Вот класс сущностей блога:

public class Blog
    {

        public int Id { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
        public string Img { get; set; }
        public bool IsApproved { get; set; }
        public int ReadingCount { get; set; }
        public int CategoryId { get; set; }
        [DataType(DataType.Date)]
        public DateTime EnrollmentDate { get; set; }
        public Category Category { get; set; }             
        public List<Comment> Comments { get; set; }
        public string UserId { get; set; }
        public ApplicationUser ApplicationUser { get; set; }

    }

И модель блога:

public class BlogModel
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
        public string Img { get; set; }
        public bool IsApproved { get; set; }
        public int ReadingCount { get; set; }
        public int CategoryId { get; set; }
        public string Category { get; set; }
        public string isim { get; set; }
        public string user { get; set; }        // about user
        public DateTime EnrollmentDate { get; set; }
        public List<CommentModel> Comments { get; set; }

    }

и приложение User для идентификации:

public class ApplicationUser: IdentityUser
    {

        public string Name { get; set; }
        public string Surname { get; set; }
        public string Yenialan { get; set; }
        public List<Blog> Bloglar { get; set; }

    }

И модель для приложения пользователя

public class userModel
    {
        public string Name { get; set; }        
        public List<BlogModel> Bloglar { get; set; }
    }

DataContext:

public class DataContext: DbContext
    {
        public DataContext() :base("dataConnection")
        {

        }
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Category> Categories { get; set; }
        public DbSet<Comment> Comments { get; set; }
        public DbSet<ApplicationUser> ApplicationUsers { get; set; }
    }

Пока все идеально. Таблицы User и Roles составлены. Он также состоит из блогов (я имею в виду таблицы SQL) но я получаю сообщение об ошибке при запуске домашнего контроллера.

запущенный код выглядит так:

public class HomeController : Controller
    {
        DataContext context = new DataContext();        
        public ActionResult Index()
        {

            var bloglar = context.Blogs
                .Where(i => i.IsApproved == true)
                .Select(i => new BlogModel()
                {
                    Id = i.Id,
                    Title = i.Title,
                    Img = i.Img,
                    EnrollmentDate = i.EnrollmentDate,
                    CategoryId = i.CategoryId,
                    Category = i.Category.Name,               
                    user = i.ApplicationUser.Name
                }).ToList();


            return View(bloglar);
        }
}

Вот ошибка:

System.Data.Entity.ModelConfiguration.ModelValidationException: 'One or more validation errors were detected during model generation:

BlogApp.Entity.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. Define the key for this EntityType.
BlogApp.Entity.IdentityUserRole: : EntityType 'IdentityUserRole' has no key defined. Define the key for this EntityType.
IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' is based on type 'IdentityUserLogin' that has no keys defined.
IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' is based on type 'IdentityUserRole' that has no keys defined.
'

Я сделал много поисков в интернете по этой ошибке. Решения, которые я нашел, не сработали для меня. Как вы думаете, это решение этой ошибки? Заранее спасибо за помощь.

...