В ASP.NET MVC, как написать модель, чтобы флажок в поле зрения соответствовал целому числу в базе данных? - PullRequest
0 голосов
/ 25 сентября 2008

У меня есть столбец базы данных "WantsReply", который логически содержит логическое значение (бит), но, к сожалению, реализован как целое число. Любое ненулевое значение означает «да», а ноль означает «нет».

Если я напишу

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;

Как я могу устранить это несоответствие импеданса, чтобы и запросы, и отправка работали?

1 Ответ

3 голосов
/ 25 сентября 2008

Вместо изменения типа свойства столбца, почему бы не сопоставить его с новым свойством?

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

Целочисленное свойство может быть приватным, если хотите. Используйте свойство bool на ваш взгляд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...