Шаблон репозитория и шаблон единицы работы с EF6 и модульным тестированием - PullRequest
0 голосов
/ 31 января 2020

Я создал проект, который реализует шаблон репозитория и шаблон единицы работы с EF6.

Я пытаюсь сделать так, чтобы я всегда кодировал интерфейс, однако EF не позволяет использовать интерфейсы для свойств навигации.

В этом проекте я сначала использовал код. Созданы мои модельные классы. Пример:

public class Kiosk
    {
        public int Id { get; set; }

        [Required]
        [Index(IsUnique = true)]
        [StringLength(15)]
        public string IpAddress { get; set; }

        [Required]
        [Index(IsUnique = true)]
        [StringLength(50)]
        public string Name { get; set; }

        [Required]
        [DefaultValue(true)]
        public bool IsActive { get; set; }

        [Required]
        public int SiteId { get; set; }

        [StringLength(50)]
        public string Description { get; set; }

        // Navigation Props
        public Site Site { get; set; }
    } 

Затем я создал интерфейс для Kiosk для использования во всем приложении. Я также думал, что свойство навигации должно быть интерфейсом здесь. Итак, я создал интерфейс для Site, и в вышеприведенном классе заменил nav nav на

public ISite Site {get;set;}

Во время компиляции я получаю следующее исключение:

System.InvalidOperationException: 'The navigation property 'Site' is not a declared property on type 'Kiosk'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property.'

Я использую модели которые были созданы для EF в качестве моделей в моем приложении. Я хотел бы использовать эти модели в качестве интерфейсов. Как тогда я могу создать тестируемое приложение? Что мне здесь не хватает?

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