SORU
12 Kasım 2013, Salı


EF Veritabanı ile ASP.NET Kimlik İlk MVC5

Veritabanı İlk ve EDMX ile yeni ASP.NET Kimliğini kullanmak mümkün mü? Veya sadece kodu ile ilk?

Yaptığım şey şu:

1) Yeni MVC5 bir Proje yaptım ve yeni Kimliği benim veritabanında yeni Kullanıcı ve Rolleri tablo oluşturmak vardı.

2) Daha sonra Veritabanı ve ilgili diğer tablolar beri yeni Kimlik Kullanıcılar tablosunda sürüklenen İlk EDMX dosyası açıldı.

3) EDMX kaydetme sırasında Veritabanı İlk POCO jeneratör otomatik Kullanıcı bir sınıf oluşturun. Ancak, kullanıcısı Yöneticisi'ni seçin ve RoleManager bir Kullanıcı sınıfı yeni Kimlik ad (Microsoft.devralmasını bekliyor AspNet.Kimlik.Iuser), POCO Kullanıcı sınıfını kullanarak bir işe yaramaz.

Olası bir çözüm POCO Nesil derslerimi Kullanıcı Dersim IUser gelen devralmak için düzenlemek için sanırım?

Ya ASP.NET Kimlik Kodu İlk Tasarım ile sadece Uyumlu mu?

Güncelleme: Aşağıdaki Anders Abel önerisi aşağıda, bu ne yaptım. Ama eğer daha zarif bir çözüm varsa merak ediyorum.

1) Benim otomatik oluşturulan varlıklar olarak aynı ad alanı içinde kısmi bir sınıf oluşturarak varlık Kullanıcı Dersim genişletilmiş.

namespace MVC5.DBFirst.Entity
{
    public partial class AspNetUser : IdentityUser
    {
    }
}

2) DBContext yerine İdentityDBContext devralır benim DataContext değiştirdim. Her zaman sizin EDMX güncelleme unutmayın ve DBContext ve Varlık sınıfları yeniden, bu ayarlamak gerekecek.

 public partial class MVC5Test_DBEntities : IdentityDbContext<AspNetUser>  //DbContext

3) otomatik olarak oluşturulan Kullanıcı varlık sınıfı İçinde, İdentityUser (Adım 1) kalıtsal olduğundan aşağıdaki 4 alanlar için override anahtar sözcüğü eklemek veya bu alanlar için açıklama gerekir. Her zaman sizin EDMX güncelleme unutmayın ve DBContext ve Varlık sınıfları yeniden, bu ayarlamak gerekecek.

    override public string Id { get; set; }
    override public string UserName { get; set; }
    override public string PasswordHash { get; set; }
    override public string SecurityStamp { get; set; }

CEVAP
12 Kasım 2013, Salı


POCO ve Veritabanı ile kimlik sistemini İlk kez kullanmak mümkün olmalı, ama yalnız bir iki değişiklik yapmak gerekecek:

  1. Güncelleme .POCO nesil varlık sınıfları partial yapmak için tt-dosya. O ayrı bir dosyaya ek uygulama sağlamak için mümkün olacaktır.
  2. Başka bir dosyada User sınıfı kısmi bir uygulama yapmak

partial User : IUser
{
}

User sınıfta arabirimi uygulamak, gerçek oluşturulan dosyaları (oluşturulan dosyaları düzenleme her zaman kötü bir fikirdir) dokunmadan yapacak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bashirsultani

    bashirsultan

    22 Mart 2010
  • OVERWERK

    OVERWERK

    6 Temmuz 2010
  • tunez4you

    tunez4you

    20 EKİM 2008