Frage

Ich möchte eine Aufzählung als Fremdschlüssel in einer Code-First-App verwenden.Da Enums als int gespeichert sind, dachte ich, ich könnte das Attribut [ForeignKey] für die enum-Eigenschaft verwenden, aber es löst diese Ausnahme aus:

The types of all properties in the Dependent Role of a referential constraint 
must be the same as the corresponding property types in the Principal Role

Hier ist ein Beispiel dafür, was ich versuche zu tun:

public enum UserType
{
    Administrator = 1,
    Member = 2
}

public class User
{
    public int UserId { get; set; }
    public string Login { get; set; }

    [ForeignKey("TypeDetails")]
    public UserType Type { get; set;}

    public virtual MasterType TypeDetails { get; set; }
}

public class MasterType
{
    public int MasterTypeId { get; set; }
    public string Description { get; set; }
    ...
}

Ist es möglich, dies oder ähnliches durch fließende API oder Migrationen zu tun?

Danke

War es hilfreich?

Lösung

Hier ist eine, die ich früher gemacht habe: https://www.nuget.org/packages/ef-enum-to-lookup

Es ist ein Nuget-Paket, das eine Methode bereitstellt, die Sie in Ihrem aufrufen können Seed (Initialisierer und / oder Migrationen), die automatisch Nachschlagetabellen erstellen und FKs hinzufügen, in denen die Aufzählung verwendet wird. Nutzungsinformationen.

Viel Spaß :-) Und lass es mich wissen, wenn es für dich (oder sonst jemanden) funktioniert!)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top