8

Я отчаянно пытаюсь создать связь между одним из многих между таблицей AspNetUsers Identity 2.0 и пользовательской таблицей, называемой Map (у одного пользователя может быть много карт, но карта может иметь только одного пользователя). Я старался, в основном, все решения, доступные на этом веб-сайте, а также потерял много дней, пытаясь найти другие идеи в Интернете. Я застрял. Ничто не работает для меня. Я новичок в MVC и EF, поэтому я думаю, что мне нужно какое-то пошаговое руководство. Может кто-нибудь, пожалуйста, очень любезно предоставить мне руководство для новичков, чтобы добиться этого из нового проекта MVC5. Спасибо и извините за вопрос о том, что я сделал.Отношения друг к другу между AspNetUsers (Identity) и таблицей custum

PS. Я могу и мне удалось создать все отношения отношений между двумя пользовательскими таблицами, но не между AspNetUsers и моей таблицей Map. Спасибо очень заблаговременно.

+0

Я предполагаю, что вы используете код первого подхода. то, что я предпочел, это попытаться создать edmx для базы данных, а затем изучить классы, созданные для таблицы aspnetuser, вы получите эту идею. сначала создайте отношение к пользовательской таблице, а также на уровне уровня db –

+0

@meajaygoel я могу спросить вас о каком-то коде, пожалуйста? – SergioPetrarca

+0

http://www.itorian.com/2013/11/customizing-users-profile-to-add-new.html –

ответ

0

http://www.itorian.com/2013/11/customizing-users-profile-to-add-new.html

это сообщение содержит ответ

+0

Большое спасибо за вашу помощь, я оценил это, к сожалению, я до сих пор не могу добиться того, чего хочу. В принципе мне нужно создать новую таблицу Db (Maps) с простым от одного до многих отношений между AspNetUser (One AspNetUser может иметь много карт). Если у вас есть время, можете ли вы предоставить мне какой-нибудь код? Огромное спасибо. – SergioPetrarca

0

Вот шаг за шагом решения с визуальными (использует наследование):

https://practiceaspnet.wordpress.com/2015/04/03/adding-asp-net-identity-to-an-existing-entity-framework-asp-net-web-forms-application/

+0

Большое спасибо за вашу помощь, я оценил это, к сожалению, я до сих пор не могу достичь того, чего хочу. В принципе мне нужно создать новую таблицу Db (Maps) с простым отношением между несколькими AspNetUser (One AspNetUser может иметь многие Карты). Если у вас есть время, можете ли вы предоставить мне какой-нибудь код? Большое спасибо – SergioPetrarca

7

я сделал именно это по ряду проектов

Например, у меня есть отношения от одного до многих от ASPNetUsers до Уведомления. Так что в моем классе ApplicationUser внутри IdentityModels.cs я есть

public virtual ICollection<Notification> Notifications { get; set; } 

Мой Уведомления класс имеет обратный

public virtual ApplicationUser ApplicationUser { get; set; } 

По умолчанию EF будет создать каскад удаления из уведомления на AspNetUsers которые я не хочу - так у меня также есть это в моем классе Context

modelBuilder.Entity<Notification>() 
    .HasRequired(n => n.ApplicationUser) 
    .WithMany(a => a.Notifications) 
    .HasForeignKey(n => n.ApplicationUserId) 
    .WillCascadeOnDelete(false); 

Просто помните определение AspNetUSers распространяется в классе ApplicationUser внутри IdentityModels.cs который создается для вас визуальными студиями. Тогда относиться к нему как любой другой класс/таблицы в приложении

UPDATE - вот примеры полных моделей

public class ApplicationUser : IdentityUser 
{ 

    [StringLength(250, ErrorMessage = "About is limited to 250 characters in length.")] 
    public string About { get; set; } 

    [StringLength(250, ErrorMessage = "Name is limited to 250 characters in length.", MinimumLength=3)] 
    public string Name { get; set; } 

    public DateTime DateRegistered { get; set; } 
    public string ImageUrl { get; set; } 

    public virtual ICollection<Notification> Notifications { get; set; } 

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) 
    { 
     // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType 
     var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 
     // Add custom user claims here 
     return userIdentity; 
    } 
} 


public class Notification 
{ 
    public int ID { get; set; } 

    public int? CommentId { get; set; } 

    public string ApplicationUserId { get; set; } 

    public DateTime DateTime { get; set; } 

    public bool Viewed { get; set; } 

    public virtual ApplicationUser ApplicationUser { get; set; } 

    public virtual Comment Comment { get; set; } 

} 

}

+0

спасибо ..Я думаю, что это то, что мне нужно, можете ли вы предоставить мне полный пример вашей модели уведомления и относительный код класса вашей модели ApplicationUser: IdentityUser, я пытаюсь добиться того же, но я не могу ... многое ! – FabioEnne

+0

Я обновил ответ, чтобы включить это. –

+0

Спасибо большое! Я попробую на этой неделе! есть ли у меня также возможность переноса и обновления? – FabioEnne