mvc3 ... でアプリケーションを開発していますが、ENUMを扱うのが大変です。mvc3のデータベースに動的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
}
を私はさらにその後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を(使用しています)は、サービスクラスのメソッド..です彼らは正常に動作している..... 。
データベースに静的な値を格納できますが、ユーザーが列挙型のヘルプで作成したドロップダウンから選択したデータベースに動的な値を保存できません。 動的な列挙型の値をデータベースに格納するのに役立つように、コントローラの内部に配置するコードを教えてください。 してください。..
保存する前に整数に変換します。 ます。public void SavePerson(人物人物){ (DBContext dbContext =新しいDbContextを(使用) - – Sachin
@SachinのハイテクuはあなたがLINQ(悪いフォーマットのための謝罪を)使用してオブジェクトを保存していると仮定し – user1274646
that..please行う方法を私を見ることができます){ dbPerson.Hobby =(int)person.Hobby; dbContext.SaveChanges(); } } – Sachin