开发者

EF 4.1 what is the best way to use enums and be able to query them on columns?

开发者 https://www.devze.com 2023-04-12 22:23 出处:网络
Here I have my code, but I wonder if this will leave me do easy queries against the enum columns. By the way, do you see something else I can improve in this code?

Here I have my code, but I wonder if this will leave me do easy queries against the enum columns.

By the way, do you see something else I can improve in this code?

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
    }


You cannot use enums in queries (it is only possible with June 2011 CTP). The closest to using enums in queries is when using Enum wrappers.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号