2012-09-28 55 views
1

我想向實體添加一些屬性到模型,但該屬性不會在數據庫中或在遷移腳本中進行任何更改。使用代碼第一次遷移時會忽略某些屬性/枚舉

當我補充一點:

public test test1 { get; set; } 

    public enum test { asasas, asdasdasd }; 

我得到一個空遷移

public override void Up() 
    { 
    } 

    public override void Down() 
    { 
    } 

但是,當我補充一下:

public String test1 { get; set; } 

    public enum test { asasas, asdasdasd }; 

我得到的預期遷移

public override void Up() 
    { 
     AddColumn("dbo.SpiderBatches", "test1", c => c.String()); 
    } 

    public override void Down() 
    { 
     DropColumn("dbo.SpiderBatches", "test1"); 
    } 

由於第二次更改確實進行了正確的遷移,因此我可以假設類/上下文已正確設置並正在運行。所以錯誤必須在枚舉中。

任何人都可以幫助我嗎?當你的目標.NET 4.5

回答

1

枚舉只支持,不支持4.0

+0

感謝您的快速響應,我會試試 –

+0

感謝您對.net 4.5的建議。 – angularsen

0

上面.NET 4.5很好的答案,但FF你需要支持.NET 4.0和我一樣,那麼你可以包括枚舉屬性,你想在你的模型上表示爲int。

兩件事情 -

1,硬編碼的值按以下以避免變化的情況下在他們的訂單在cs文件摧毀你的引用完整性

public enum MyEnum 
{ 
    FirstProperty = 1, 
    AskUser = 2, 
    IgnoreLine = 3, 
    ImportPrice = 4, 
    Undecided = 5 
} 

2 - 當你保存回數據庫,在保存之前需要將枚舉強制轉換爲int

MyEntity.PsuedoEnumProperty = (int)FirstProperty 
相關問題