我有“用户”和“出价”模型。
当前在DateBase中的“用户”和“出价”表。 ("Bid" columns in postgres table)
我可以映射一个“用户”字段,如下所示:
public int UserId { get; set; }
public virtual User User { get; set; }
但不知道如何映射具有不同名称的三个“用户”字段。
public int CreatorId { get; set; }//id of user in db table
public int ManagerId { get; set; }//id of user in db table
public int ExecutorId { get; set; }//id of user in db table
public virtual User Creator { get; set; }
public virtual User Manager { get; set; }
public virtual User Executor { get; set; }
我该怎么办?
public class Bid
{
public int BidId { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public DateTime DateOfCreating { get; set; }
public DateTime DateOfProcessing { get; set; }
public DateTime DateOfExecution { get; set; }
//here is something incorrect
public int CreatorId { get; set; }
public int ManagerId { get; set; }
public int ExecutorId { get; set; }
public virtual User Creator { get; set; }
public virtual User Manager { get; set; }
public virtual User Executor { get; set; }
public bool IsProcessed { get; set; }
public bool IsExecuted { get; set; }
public bool IsExecutionConfirmed { get; set; }
}
答案 0 :(得分:0)
我怀疑你必须告诉Entity Framework
3个属性应该用作数据库中的外键。
由于它们具有非常规名称(EF不会自动将它们识别为外键),因此可以通过在其上设置ForeignKey
属性并指定它们是外键值的导航属性来帮助理解。
[ForeignKey("Creator")]
public int CreatorId { get; set; }
[ForeignKey("Manager")]
public int ManagerId { get; set; }
[ForeignKey("Executor")]
public int ExecutorId { get; set; }
public virtual User Creator { get; set; }
public virtual User Manager { get; set; }
public virtual User Executor { get; set; }