实体框架-升级到EF6后-无法将属性配置为导航属性



我有以下类:

[Table("TagSource")]
public class TagSource
{
    public TagSource()
    {
        this.DataSources = new HashSet<DataSource>();
    }
    [Key]
    public int TagSourceId { get; set; }
    ...
    public bool IsHistorical { get; set; }
    public Nullable<int> ModifiedEntryId { get; set; }
    ...
    public int? AttachedTagSourceId { get; set; }        
    [ForeignKey("AttachedTagSourceId"), InverseProperty("TagSourceId")]
    public virtual TagSource AttachedTagSource { get; set; }
    [ForeignKey("ModifiedEntryId"), InverseProperty("TagSourceId")]
    public virtual TagSource ModifiedEntry { get; set; }
}

我使用的是实体框架5,但现在我已经(通过使用nuget)升级到了最新版本-6,之后我遇到了一个错误:

"无法将属性"TagSourceId"配置为导航属性。该属性必须是有效的实体类型,并且该属性应具有非抽象的getter和setter。对于集合属性,该类型必须实现ICollection,其中T是有效的实体类型。","ExceptionType":"System.InvalidOperationException"

我已经读过这个主题,但我没有类似描述的参考资料:EF5到EF6升级-导航属性被破坏

我也遇到了同样的问题。我删除了InverseProperty属性,问题得到了解决。希望能有所帮助。

最新更新