Ошибка с структурой сущностей отношения один к одному - PullRequest
0 голосов
/ 11 июня 2018

Добрый день:

Я пытаюсь выполнить сопоставление один к одному, используя Entity Framework, но получаю эту ошибку:

Компонент внешнего ключа 'Id' не являетсяобъявленное свойство типа UserUpload.Убедитесь, что оно не было явно исключено из модели и является допустимым примитивным свойством.

Это мой код ниже:

 public abstract class Upload 
    {
        [Key]
        [Ignore]
        public virtual Guid Id { get; set; }

        public string Path { get; set; }

        public string Name { get; set; }

        public long   Size { get; set; }

        public UploadTypes Type { get; set; }

        [Ignore]
        [Timestamp]
        public byte[] RowVersion { get; set; }
    }

И мой подкласс:

   public class UserUpload : Upload
    {
        [Key]
        [ForeignKey("User")]
        public override Guid Id { get { return base.Id; } set { base.Id = value; } }


        public ApplicationUser User { get; set; }

    }

В моем абстрактном классе у меня есть [Ignore] из-за того, что я хочу, чтобы свойство игнорировалось NEST (зависимость ElasticSearch).Тем не менее это нужно для Entity Framework (мой UserUpload ).

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

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

Наконец, проверьте: «и что это допустимое примитивное свойство».

Guid не примитив, вместо него используйте int.

0 голосов
/ 11 июня 2018

Убедитесь, что оно не было явно исключено из модели

[Ignore]
[Key]
public virtual Guid Id { get; set; }

Вы ЕСТЬ явно исключили его из модели.

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