(MVC, Identity) Как добавить ApplicationUser в модель?

1

Я хочу сделать проект блога в MVC. поэтому я создал новый проект в VS с ASP.NET 4.5.1 и отдельными учетными записями пользователей.

Теперь я столкнулся с той же проблемой, о которой упоминалось в следующей статье:

ASP.NET MVC 5 - Идентичность. Как получить текущий ApplicationUser

Но мой немного глубже!

Я не знаю, как определить "ApplicationUser" в моей модели. это моя модель:

public class Article {
    public int Id {get; set;}
    .
    .
    .
    public string AuthorId { get; set; }
    public virtual ApplicationUser Author { get; set; } //this line is the problem!
}

Это мой очень простой контроллер:

namespace Blog.Controllers
{
    [Authorize]
    public class ArticleController : Controller
    {
        DatabaseContext db = new DatabaseContext();

        public ActionResult Index()
        {
            IEnumerable<Article> articles = db.Articles;
            return View(articles);
        }
    }
}

И я всегда получаю этот набор ошибок:

Blog.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. Define the key for this EntityType.
Blog.Models.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.

(Обратите внимание, что все 4 класса, упомянутые в приведенных выше ошибках, являются встроенными классами, то есть они были созданы во время создания проекта.)

Что мне делать?

  • 0
    у вас есть опечатка в статье класса «ApplicatinUser» вместо «ApplicationUser»
  • 0
    спасибо, я редактировал код здесь. но это была не проблема. это была просто опечатка.
Показать ещё 1 комментарий
Теги:
asp.net-mvc
asp.net-identity

1 ответ

0
public string AuthorId { get; set; }
[ForeignKey("AuthorId")]
public ApplicationUser Author { get; set; } //this line is the problem!
  • 0
    Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, почему и / или как этот код отвечает на вопрос, улучшает его долгосрочную ценность

Ещё вопросы

Сообщество Overcoder
Наверх
Меню