我有以下类:
[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
属性,问题得到了解决。希望能有所帮助。