Как сохранить значение динамического перечисления в базе данных в mvc3 - PullRequest
0 голосов
/ 03 апреля 2012

я разрабатываю приложение в mvc3 ... и у меня чертовски много времени связано с ENUM.

Я сделал класс enum:

Hobby.cs

    public enum Hobby
    {
    [Display(Name = "Dancing")]
    Dancing = 1
    ,
    [Display(Name = "Singing")]
    Singing = 2
    ,
    [Display(Name = "Painting")]
    Painting = 3
    ,
    [Display(Name = "Cooking")]
    Cooking = 4
    ,
    [Display(Name = "Photography")]
    Photography = 5

    }

Я использовал класс Hobby как тип в другом классе под названием HobbyDetail.cs

 public class HobbyDetail
{
    [Key]
    public virtual int HobbyDetailId { get; set; }

    [EnumDataType(typeof(Hobby), ErrorMessageResourceType = typeof(Resources),        ErrorMessageResourceName = "HobbyRequired")]
    [Display(Name = "lblHobby", ResourceType = typeof(Resources))]
    public virtual Hobby Hobby { get; set; }

    public virtual string StudyMedium { get; set; }
    public virtual decimal Fees { get; set; }
    public virtual char ForWhom { get; set; }
    public virtual Boolean InclusiveStudyMaterial { get; set; }
    public virtual int AgeFrom { get; set; }
    public virtual int AgeTo { get; set; }
    public virtual string HobbyInfo { get; set; }

}

Затем я создал объект указанного класса в другом классе

.

назвал Person.cs как

  public virtual HobbyDetail Hobby { get; set; }

Я вставил следующий код в мой контроллер:

 public viewResult(Person person)
 {


 PersonalProfileService personalProfileService = new PersonalProfileService();

 person.Hobby.Hobby = Hobby.Dancing;
 personalProfileService.SaveBasicProfileWithHobby(person);

 }

Я использую NHibernate, а SaveBasicProfileWithHobby () - это метод класса обслуживания ... они работают нормально ......

Я могу сохранить статическое значение в базе данных, но не могу сохранить динамическое значение в моей базе данных, какой пользователь выбрал из выпадающего списка, созданного с помощью enum. Предложите мне код строк для размещения внутри контроллера, чтобы это помогло мне сохранить динамическое значение enum в базе данных. Пожалуйста ..

1 Ответ

1 голос
/ 05 апреля 2012

HobbyDetail.cs:

public short HobbyId {get; set;}

и получите значение как:

    public Hobby Hobby
    {
        get
        {
            return (Hobby)HobbyId;
        }
        set
        {
            HobbyId = (byte)Hobby;
        }
    }

и ваше перечисление может выглядеть так:

public enum Hobby : byte
{
    Dancing = 1,
    Singing = 2
}

Надеюсь, это поможет ...

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