2015-11-04 27 views
6

Zrobiłem projekt odrobinę ASP.NET MVC w ramach tożsamości. Stworzył nową tabelę AspNetUsers, ale chcę dodać kolumny do tej tabeli, takie jak dzień urodzin, zdjęcie profilowe itp. Jak mogę to zrobić?Dodaj kolumnę w tabeli z tożsamością ASP.NET

Czy mogę uruchomić poniższe zapytanie w moim SQL Server Management Studio?

ALTER TABLE AspNetUsers ADD ProfilePicture NVARCHAR(100); 
ALTER TABLE AspNetUsers ADD BirthDay DATE; 

A może jest bardziej skomplikowany? Nie mogę pracować ze strukturą tożsamości, więc muszę to zrobić z ADO.NET i platformą .NET 4.

+3

Będziesz musiał dodać odpowiednią właściwość do swojej klasy 'IdentityUser', a następnie utworzyć migrację Entity Framework, która następnie uruchomi ap propriate SQL w bazie danych po przeprowadzeniu migracji. http://blogs.msdn.com/b/webdev/archive/2013/10/16/customizing-profile-information-in-asp-net-identity-in-vs-2013-templates.aspx – James

Odpowiedz

15

Znalazłem! @James zasugerował mi artykuł, który działa.

Kroki:

  1. Type w menedżerze konsoli kod:

    Enable-Migrations 
    

    Źródło: blogs.msdn.com

  2. W klasie ApplicationUser dodaj wybraną usługę.

    public DateTime? Birthdate { get; set; } 
    
  3. w rodzaju menedżera konsola ten kod:

    Add-Migration "Birthdate" 
    
  4. Po uaktualnia odrobina Database ten kod:

    Update-Database 
    

Wynik: nowa kolumna jest dodawany do bazy danych z nazwą "Data urodzenia" i typem datetime, która może być pusta.

+0

Dzięki za post.It pomógł mi! W moim przypadku musiałem dodać kolumnę typu int.I dodał kolumnę, jak opisano w swoim poście, ale teraz muszę zdefiniować dodaną kolumnę int jako klucz obcy.Czy masz pojęcie, jak można to być realizowane? – Michael

6

Załóżmy, że chcemy dodać nową kolumnę o nazwie "FirstName":

Krok 1: models/IdentityModels.cs

Dodaj następujący kod do klasy "ApplicationUser":

public string FirstName { get; set; } 

Etap 2: modeli/AccountViewModels.cs

Dodaj następujący kod do klasy "RegisterViewModel":

public string FirstName { get; set; } 

Krok 3: views/Rejestracja.cshtml

Dodaj FIRSTNAME tekstowe wejściowe do widoku:

<div class="form-group"> 
     @Html.LabelFor(m => m.FirstName, new { @class = "col-md-2 control-label" }) 
     <div class="col-md-10"> 
      @Html.TextBoxFor(m => m.FirstName, new { @class = "form-control" }) 
     </div> 
</div> 

Krok 4:

przejdź do Narzędzia> Nuget Menedżer> Pakiet Konsola Menedżer

Etap A: Wpisz „enable-Migracje "I naciśnij Enter
Krok B: Wpisz" Add-Migration "First Name" "i naciśnij Enter.
Krok C: Wpisz" Update-Database "a nd naciśnij enter
tj

PM> Enable-Migrations 
PM> Add-Migration "FirstName" 
PM> Update-Database 

Krok 5: Kontrolery/AccountController.cs

idź się zarejestrować i dodać Akcja "FirstName = model.FirstName" do ApplicationUser tj

var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName}