我有一个包含此架构的现有数据库:
FK指的是用户
表中的UserID字段在实体方面,我有:
[Table("User")]
public abstract partial class User
{
public int UserID { get; set; }
public virtual string LastName{ get; set; }
public virtual string Firstname{ get; set; }
}
[Table("Manager")]
public partial class Manager : User
{
public int ManagerID{ get; set; }
}
[Table("Coordinator")]
public partial class Coordinator: User
{
public int CoordinatorID{ get; set; }
}
我的问题是实体框架正在搜索名为Manager_UserID的列(User表的一种外键)。但是我的数据库中不存在此列。有没有办法在不改变数据库结构的情况下正确地将数据库映射到模型
感谢
答案 0 :(得分:0)
将每个表中的主键名称更改为Id。 EF知道这意味着将其作为主键
[更新]
由于你提到了3个表,我认为你需要每个类型的表继承TPT,如上所述 here 您需要在Manager类中提及User作为导航属性。也不要从用户继承。
public partial class Manager
{
public int ManagerID{ get; set; }
public virtual User Manager { get; set; }
}
此外,只有导航属性需要是虚拟的。不是FirstName,LastName
等字段属性另请查看您的上下文是如何设置的。每个表应该有3个DBS一个