enum

5

को सहेजते समय गलत मान मुझे माइग्रेशन में एक पूर्णांक कॉलम में मैप करने के लिए एंटीटी फ्रेमवर्क 5 एन्म्स प्राप्त करने में थोड़ा कठिनाई हो रही है। यह उनके डेटाबेस में प्रतिबिंबित नहीं करता है जब मैं परिवर्तनों को सहेजने केenum

public partial class EnumTest : DbMigration 
{ 
    public override void Up() 
    { 
     AddColumn("UserProfile", "Status", c => c.Int(nullable: false, defaultValue:1)); 
    } 

    public override void Down() 
    { 
     DropColumn("UserProfile", "Status"); 
    } 
} 

हालांकि: माइग्रेशन

[Table("UserProfile")] 
public class UserProfile 
{ 
    public enum StudentStatusType 
    { 
     Student = 1, 
     Graduate = 2 
    } 

    [Key] 
    public int UserId { get; set; } 
    public string UserName { get; set; } 
    public string FullName { get; set; } 
    public StudentStatusType Status { get; set; } 
} 

इस तरह दिखता है: यहाँ क्या कोड की तरह लग रहा है।

var user = new UserProfile(); 
user.Status = UserProfile.StudentStatusType.Graduate; 
user.FullName = "new"; 
user.UserName = "new"; 
users.UserProfiles.Add(user); 
users.SaveChanges(); 

डेटाबेस:

---------------------------------------------------- 
|UserId | UserName | FullName | Status | 
---------------------------------------------------- 
|1  | new  | new  | 1  | 
---------------------------------------------------- 
+0

क्या आप किसी भी मौके से .NET Framework 4 को लक्षित कर रहे हैं, न कि .NET Framework 4.5? – Pawel

+0

मैं .NET Framework 4.5 को लक्षित कर रहा हूं। –

उत्तर

4

इस का कारण यह है कि enum एक वर्ग में नेस्ट किया जाता है। इकाई फ्रेमवर्क नेस्टेड प्रकारों की खोज नहीं करता है। कक्षा से बाहर निकलने की कोशिश करें और देखें कि यह काम करता है या नहीं। जब कोड पहले दृष्टिकोण का उपयोग कर

संपादित

EF6 अब (enums सहित) नेस्टेड प्रकार का समर्थन करता।

+0

वह था। धन्यवाद, मुझे उस प्रतिबंध के बारे में पता नहीं था। –

 संबंधित मुद्दे