1

ASP.NET MVC 3 と列挙型に「少し」問題があります。

私の人物モデル:

namespace AcTIV.Models
{
    public enum Sex { Male, Female };

    public class Person
    {
        public int PersonID { get; set; }
        public string Name { get; set; }
        public Sex Sexo { get; set; }
    }
}

私のイニシャライザ:

namespace AcTIV.DAL
{
    public class AcTIVInitializer : DropCreateDatabaseAlways<AcTIVContext>
    {
        protected override void Seed(AcTIVContext context)
        {    
            var persons = new List<Person>
            {
                new Person { Name = "Mary Lee", Sexo = Sex.Female }
            };
            persons.ForEach(s => context.Persons.Add(s));
            context.SaveChanges();
        }
    }
}

ここまでは順調ですね。マイ ウォッチに正しい値が表示されます。

persons[0].Name = "Mary Lee"  
persons[0].Sexo = Female  

今、私の人コントローラ:

namespace AcTIV.Controllers
{
    public class PersonController : Controller
    {
        private UnitOfWork unitOfWork = new UnitOfWork();

        public ViewResult Index()
        {
            Person person = unitOfWork.PersonRepository.GetByID(1); //Just for test
            //return View(unitOfWork.PersonRepository.Get().ToList());
        }
    }
}

ここで私のウォッチは間違った列挙値を表示します:

person.Name = "Mary Lee"  
person.Sexo = Male  

私は何を間違っていますか?

--- 解決済み ---

答えは別のstackoverflowの投稿にあります: EFコードファーストで列挙型をどのように解釈するか

4

2 に答える 2

1

EF4.3を使用していますか?enumサポートはEF5でのみ利用可能だと思います

于 2012-07-06T19:32:16.790 に答える
0

私の疑問は、PersonRepositoryのIDを持つPersonのSex列挙値が正しく設定されていないことです。デフォルトでは、最初の列挙子の値は0です。

しかし、Mary LeeのPersonレコードでは、女性=1ではなく男性=0として記録されているように見えます。

于 2012-07-06T19:32:08.787 に答える