2016-02-09 99 views
6

我有問題EF7 RC1。我無法在模型中使用枚舉。我可以保存枚舉屬性。該值被轉換爲int。我的問題是,在數據讀取期間,我得到無效的轉換異常。EF7是否支持枚舉?

  1. EF7是否支持enum屬性?
  2. 我怎樣才能配置流利的API?

感謝

編輯:

枚舉:

public enum LimitMode 
    { 
     Max, 
     Min, 
     MaxAndMin, 
    } 

型號:

public class SomeModel 
    { 
    (..) 
    public LimitMode LimitMode {get; set;} 
    } 

爲構建器SomeModel:

 modelBuilder.Entity<SomeModel>(entity => { 
      (...) 
      entity.Property(p => p.LimitMode); 
     }) 
+0

儘量明確地說枚舉是一個int'公共枚舉LimitMode:int'並給予枚舉的成員我都試過這個值('最大= 0,...') –

+0

。不幸的是它不起作用。仍然無效演員例外:/ – panJapa

+0

奇怪的是,在EF6中它完美的作品。 EF7還沒有完全發佈,所以它可能仍然是一個錯誤,或者你的數據庫中有沒有連接到任何枚舉的值。如果你的枚舉值是1-3,並且有4個存儲在你的數據庫中,我想你會得到那個錯誤。 –

回答

2

這對我有效。我在project.json中使用「EntityFramework.MicrosoftSqlServer」:「7.0.0-rc1-final」。作爲推動模型的一部分,我必須運行遷移數據庫更新。

public class Person 
{ 
    public int PersonId { get; set; } 
    public string LastName { get; set; } 
    public string FirstName { get; set; } 
    public int PersonTypeId { get; set; } 
    public PersonType PersonType { get; set; } 
    public ActiveType ActiveType { get; set; } 
} 

public enum ActiveType 
{ 
    Active = 0, 
    Inactive = 1 
} 
+0

在使用枚舉進行遷移之後模式是什麼樣的?我問,因爲遷移現在不能以任何方式與MySQL一起工作,所以我需要手動創建模式。 –

+0

它將被設置爲int列 –