我尝试使用Table per Type方法使用EF Code First进行继承。我的实际结构是这样的:
public partial class Person
{
public int ID {get; set;}
public string Name { get; set; }
}
public partial class Employee : Person
{
public int ID { get; set; }
public string Document{ get; set; }
}
使用这种结构,例如,我可以这样做:
var obj = new Employee();
string a = obj.Name; <--- The property Name is from Person model
然而,不可能以相反的方式做这种关系(就像在LINQ中所做的那样):
var obj2 = new Person();
string b = obj2.Person.Document; <--- It cannot resolve 'Person' symbol
有没有办法从Employee对象访问模型Person?
提前致谢。
答案 0 :(得分:0)
正如所有人在评论中提到的,Person不是员工,也无法访问员工财产。您可以使用“as”运算符,如果员工是员工,则将人员转换为员工对象,如果员工不是员工,则为空。
希望以下内容能帮助您找到正确的方向:
var obj2 = new Person();
string b;
var employee = obj2 as Employee;
if (employee != null)
{
b = obj2.Person.Document;
}
在这种情况下,Person永远不会是员工,因为它是在
之前创建的