Используйте общие свойства для всех классов - PullRequest
0 голосов
/ 03 апреля 2019

Я работаю над подходом EF Code First Web API. У меня есть несколько общих свойств, которые я решил сделать из этого общего класса и использовать его во всех моделях.

Теперь, когда я пытался обновить базу данных с помощью PMC, я получаю следующую ошибку:

Значение не может быть нулевым.

Имя параметра: entitySet

Но если я удаляю свойство общего класса в модели и делаю обновление, оно работает нормально.

Модель:

 public class Employee
    {
        [Key]
        public int EmployeeId { get; set; }
        [Required, MaxLength(50)]
        public string Name { get; set; }
        public int Age { get; set; }
        public DateTime DOB { get; set; }
        public int City { get; set; }
        public int State { get; set; }
        public int Country { get; set; }
        public ComFields DateTimeDetails { get; set; } //This is the line
        [NotMapped]
        public List<Employee> Employees { get; set; }

    }

Общий класс:

 public class ComFields
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public DateTime CreatedDate { get; set; }
        public int? CreatedBy { get; set; }
        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public DateTime ModifiedDate { get; set; }
        public int? ModifiedBy { get; set; }
        public bool Active { get; set; } = true;

    }

Где я не прав? Дайте мне знать, если есть какой-то другой лучший способ справиться с такими сценариями.

Обновление:

Попытка переопределить метод seed для добавления значений,

protected override void Seed(ExerciseWebAPI.Context.DatabaseContext context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method 
            //  to avoid creating duplicate seed data.

            context.Users.AddOrUpdate(x => x.UserId,
                new Users { Name = "aaa", Password = "CA", Email = "c@c.com", MobileNumber = "1234567", Age = 31, CountryId = 1, CreatedDate = DateTime.Now, ModifiedDate = DateTime.Now, CreatedBy = 0, ModifiedBy = 0, Active = true },
                new Users { Name = "bbb", Password = "DA", Email = "a@a.com", MobileNumber = "1234987", Age = 31, CountryId = 2, CreatedDate = DateTime.Now, ModifiedDate = DateTime.Now, CreatedBy = 0, ModifiedBy = 0, Active = true },
                new Users { Name = "ccc", Password = "BA", Email = "e@e.com", MobileNumber = "9876543", Age = 31, CountryId = 5, CreatedDate = DateTime.Now, ModifiedDate = DateTime.Now, CreatedBy = 0, ModifiedBy = 0, Active = true }

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