Как определить свойство навигации с помощью кода Entity Framework первым подходом - PullRequest
0 голосов
/ 23 марта 2020

У меня есть следующий класс, который я хочу использовать в качестве контекста данных в Entity Framework:

    public class AggregateRecord : IAggregateRecord
    {
        [Key]
        public int AggregateRecordID { get; set; }
        public DateTime? InsertDate { get; set; } = DateTime.Now;

        public DateTime BookingDate { get; set; }
        public string AmountTypeName { get; set; }
        public int? UnifiedInstrumentCode { get; set; }
        public double? Amount { get; set; }

        public string BookingAccountID { get; set; }
        public string AccountCurrency { get; set; }
        public string ClientCurrency { get; set; }
        public string AffectsBalance { get; set; }
        public string AssetType { get; set; }
        public string UnderlyingInstrumentSubType { get; set; }
        public string InstrumentSymbol { get; set; }
        public string InstrumentSubType { get; set; }
        public string UnderlyingInstrumentAssetType { get; set; }
        public string UnderlyingInstrumentDescription { get; set; }
        public string UnderlyingInstrumentSymbol { get; set; }
        public string UnderlyingInstrumentUic { get; set; }
        public double? AmountAccountCurrency { get; set; }
        public string AmountClientCurrency { get; set; }

        public string InstrumentDescription { get; set; }
        public virtual ICollection<InstrumentInfo> InstrumentInfo { get; set; }
    }

    public class InstrumentInfo
    {
        [Key]
        public int InstumentInfoID {get;set;}

        public string SomeInformation { get; set; }

        public int AggregateRecordID { get; set; }

        public virtual AggregateRecord AggregateRecord { get; set; }
    }

У меня есть примеры, представленные для EF6, но у меня все еще есть проблема, что при попытке обновить моя миграция, что я получаю следующую ошибку:

Одна или несколько ошибок проверки были обнаружены во время генерации модели:

В ссылочной таблице 'dbo.AggregateRecords нет первичных или потенциальных ключей ', которые соответствуют списку ссылающихся столбцов во внешнем ключе' FK_dbo.InstrumentInfoes_dbo.AggregateRecords_AggregateRecordID '. Не удалось создать ограничение или индекс. См. Предыдущие ошибки.

Как мне определить классы, чтобы к InstrumentInfo можно было получить доступ через свойство навигации?

Ответы [ 2 ]

1 голос
/ 23 марта 2020
public class InstrumentInfo
{
    [Key]
    public int InstumentInfoID {get;set;}

    public string SomeInformation { get; set; }

    public int AggregateRecordId { get; set; }

    public virtual AggregateRecord AggregateRecord { get; set; }
}

Кажется, вы забыли "publi c"

0 голосов
/ 23 марта 2020

Я "решил" проблему. Это странно, но, возможно, это поможет кому-то в будущем, поэтому я отвечаю на свой вопрос.

Я переименовал свой класс AggregateRecord в AggregateEntry. Выполнил Add-Migration и Update-Database с новым переименованным именем класса. И это сработало. Похоже, что была какая-то проблема с определением миграции или что-то еще, но это решило ее. В конце концов, я переименовал его обратно в исходное имя, повторил ту же процедуру и, вуаля, он работает.

@ Деннис Спейд: Спасибо за ваши усилия, без вашего намека это заняло бы у меня еще больше время найти настоящую «проблему».

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