2008-09-25 33 views
0

我有一個數據庫列「WantsReply」邏輯上持有一個布爾(位),但不幸實現爲一個整數。任何非零值意味着「是」,零意味着「否」。在ASP.NET MVC中,如何編寫模型使查看框在數據庫中對應於整數?

如果我寫

class Entry { 
    [Column] public int WantsReply {get; set;} 
} 

在我的模型,並使用

Html.CheckBox("WantsReply", View.Model.WantsReply) 

然後我得到一個轉換錯誤,當我提出的觀點是在視圖映射到一個複選框。 ,如果我寫

[Column] public bool WantsReply {get; set;} 

則認爲提交作品確定的,但後來我得到一個不同的轉換錯誤,當我運行像

from entry in Entries select entry; 

查詢我怎樣才能解決這個阻抗不匹配,使另一方面查詢和提交工作?

回答

3

不改變列屬性的類型,爲什麼不把它映射到一個新的屬性?

public partial class Entry { 
    public bool WantsReplyAsBool 
    { 
     get 
     { 
      return WantsReply != 0; 
     } 
     set 
     { 
      if (value) 
      { 
       WantsReply = 1; 
      } 
      else 
      { 
       WantsReply = 0; 
      } 
     } 
    } 
} 

整數屬性可以是私人的,如果你喜歡。在視圖中使用布爾屬性。