【发布时间】:2014-10-03 22:13:45
【问题描述】:
如果我有以下模型,我是否正确使用了 InverseProperty?
class Person {
public int PersonID {get;set;}
[InverseProperty("Person")]
public List<Hobbies> Sports {get;set;}
[InverseProperty("Person")]
public List<Hobbies> Art {get;set;}
[InverseProperty("Person")]
public List<Hobbies> Reading {get;set;}
}
abstract class Hobbies {
public int HobbiesID {get;set;}
public string HobbyName {get;set;}
public int HobbyRating {get;set;}
public int PersonID {get;set;}
public Person Person {get;set;}
}
class Sports : Hobbies {}
class Art : Hobbies {}
class Reading : Hobbies {}
这在我不使用 InverseProperty 时有效,但问题是数据库创建了重复的 PersonID columns(比如其中 4 个,对于从爱好继承的每种类型看起来像 1 个),而我没有想要那个,
但是,当我使用 InversePorperty 时,我得到一个异常:
Schema specified is not valid. Errors: The relationship 'x.x.Person_Reading' was not loaded because the type 'x.x.Hobbies' is not available.
【问题讨论】:
-
您没有将 Hobbies 上的 Person 属性的外键指定为 PersonID。也许这是造成问题的原因。添加
[ForeignKey("PersonID")]属性。 -
@odyss-jii 会尽力让您知道,谢谢!
-
@odyss-jii 我遇到了同样的异常
标签: c# asp.net-mvc entity-framework-6