EF 4.1, как лучше всего использовать перечисления и иметь возможность запрашивать их по столбцам? - PullRequest
0 голосов
/ 13 октября 2011

Здесь у меня есть свой код, но мне интересно, если это позволит мне делать простые запросы к столбцам enum.

Кстати, вы видите что-то еще, что я могу улучшить в этом коде?

public class HRContext : DbContext
    {
        public DbSet<Position> Positions { get; set; }
        public DbSet<Applicant> Applicants { get; set; }
        public DbSet<ApplicantImage> ApplicantImages { get; set; }
        public DbSet<ApplicantPosition> ApplicantsPositions { get; set; }
        public DbSet<ApplicationPositionHistory> ApplicationsPositionHistory { get; set; }
    }

    public class HRContextInitializer : DropCreateDatabaseAlways<HRContext>
    {
        protected override void Seed(HRContext context)
        {
        }
    }

    public class Position
    {
        public int id { get; set; }
        public string name { get; set; }
        public int yearsExperienceRequired { get; set; }
    }

    public class Applicant
    {
        public int ApplicantId { get; set; }
        public string name { get; set; }
        public string telephone { get; set; }
        public string skypeuser { get; set; }
        public ApplicantImage photo { get; set; }
    }

    public class ApplicantImage
    {
        public int ApplicantId { get; private set; }
        public byte[] Image { get; set; }
    }

    public class Address
    {
        public string Country { get; set; }
        public string City { get; set; }
        public string AddressLine1 { get; set; }
        public string AddressLine2 { get; set; }    
    }

    public class ApplicantPosition
    {
        public Position appliedPosition { get; set; }
        public Applicant applicant { get; set; }
        public DateTime appliedDate { get; set; }
        public int StatusValue { get; set; }

        public Status Status
        {
            get { return (Status)StatusValue; }
            set { StatusValue = (int)value; }
        }
    }

    public class ApplicationPositionHistory
    {
        public ApplicantPosition applicantPosition { get; set; }
        public Status oldStatus { get; set; }
        public Status newStatus { get; set; }
        public string comments { get; set; }
        public DateTime dateModified { get; set; }
    }

    public enum Status
    {
        Applied,
        AcceptedByHR,
        AcceptedByTechnicalDepartment,
        InterviewedByHR,
        InterviewedByTechnicalDepartment,
        InterviewedByGeneralManager,
        AcceptedByGeneralManager,
        NotAccepted
    }

1 Ответ

2 голосов
/ 13 октября 2011

Нельзя использовать перечисления в запросах (это возможно только с CTP за июнь 2011 г.) . Наиболее близким к использованию enum в запросах является использование Enum wrappers .

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