2012-04-03 7 views
0

Ich versuche, eine mirgration hinzufügen, bevor ich mein Projekt.EntityType 'MembershipUser' hat keinen Schlüssel definiert. Vererbten Klasse

bekomme ich folgende Fehlermeldung, wenn ich einen mirgration

One or more validation errors were detected during model generation: 

\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'MembershipUser' has no key defined. Define the key for this EntityType. 
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'MembershipUsers' is based on type 'MembershipUser' that has no keys defined. 

Hier hinzuzufügen versuchen, die Klasse:

<Table("aspnet_Membership")> 
Public Class UserMembership 
    Inherits User 

    Public Property ApplicationId As Guid 

    Public Property Comment As String 

End Class 

Die Mutter:

<ReadOnlyAttribute(True), Table("aspnet_Users")> 
Public Class User 

    <Key, DatabaseGenerated(DatabaseGeneratedOption.Identity), DisplayName("User Id")> 
    Public Property UserId As Guid 

    <Required, StringLength(256)> 
    Public Property UserName As String 

    <Required, StringLength(256)> 
    Public Property LoweredUserName As String 

    <StringLength(16)> 
    Public Property MobileAlias As String 

    <Required> 
    Public Property IsAnonymous As Boolean 

    <Required> 
    Public Property LastActivityDate As DateTime 
End Class 

Schließlich OnModelCreating:

modelBuilder.Entity(Of MembershipUser)().Map(Sub(m) 
               m.MapInheritedProperties() 
               m.ToTable("aspnet_Membership") 
              End Sub) 

Wer weiß, was ich falsch mache?

+1

Die Ausnahme spricht über 'MembershipUser' aber Ihre Klasse hat den Namen' UserMembership'. Ist das ein Tippfehler? – Slauma

+0

Wie Slauma sagt sein einen Tippfehler, albern mich. Danke, Slauma. – cja100

Antwort

0

Die Ausnahme spricht über MembershipUser, aber Ihre Klasse hat den Namen UserMembership. Ist das ein Tippfehler?

+0

Aber Ihre Fluent Mapping verwendet 'MembershipUser'. Hatten Sie zwei Klassen: 'MembershipUser' und' UserMembership'? Sonst würde ich erwarten, dass Sie einen Kompilierzeitfehler bekommen haben. Wie hast du das Problem jetzt gelöst? – Slauma

+0

Es wurde Referenzierung System.Web.Security.MembershipUser – cja100

Verwandte Themen