0

我有以下类,我想在 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?

4

2 回答 2

1
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; }
}

好像你忘记了“公开”

于 2020-03-23T07:48:42.070 回答
0

我“解决”了这个问题。这很奇怪,但也许它会在未来帮助某人,这就是我回答我自己的问题的原因。

我将我的类 AggregateRecord 重命名为 AggregateEntry。使用新的重命名类名执行添加迁移和更新数据库。它奏效了。看起来迁移定义或其他任何问题都存在问题,但它解决了。最后,我将其重命名为原始名称,再次执行相同的程序,瞧,它起作用了。

@Dennis Spade:感谢您的努力,如果没有您的提示,我将花费更多时间来找到真正的“问题”。

于 2020-03-23T08:42:19.483 回答