C# 具有一个类的字段的EntityFramework和模型

C# 具有一个类的字段的EntityFramework和模型,c#,entity-framework,postgresql,ef-code-first,C#,Entity Framework,Postgresql,Ef Code First,我有“用户”和“出价”模型 当然还有数据库中的“用户”和“投标”表。() 我可以这样映射一个“用户”字段: public int UserId{get;set;} 公共虚拟用户用户{get;set;} 但我不知道如何映射三个不同名称的“用户”字段 public int CreatorId{get;set;}//db表中用户的id public int ManagerId{get;set;}//数据库表中用户的id public int ExecutorId{get;set;}//数据库表中用户

我有“用户”和“出价”模型

当然还有数据库中的“用户”和“投标”表。()

我可以这样映射一个“用户”字段:

public int UserId{get;set;}
公共虚拟用户用户{get;set;}
但我不知道如何映射三个不同名称的“用户”字段

public int CreatorId{get;set;}//db表中用户的id
public int ManagerId{get;set;}//数据库表中用户的id
public int ExecutorId{get;set;}//数据库表中用户的id
公共虚拟用户创建者{get;set;}
公共虚拟用户管理器{get;set;}
公共虚拟用户执行器{get;set;}
我该怎么办

公共类投标
{
public int BidId{get;set;}
公共字符串标题{get;set;}
公共字符串文本{get;set;}
创建{get;set;}的公共日期时间日期
公共日期时间处理日期{get;set;}
公共日期时间执行日期{get;set;}
//这里有点不对劲
public int CreatorId{get;set;}
public int ManagerId{get;set;}
public int ExecutorId{get;set;}
公共虚拟用户创建者{get;set;}
公共虚拟用户管理器{get;set;}
公共虚拟用户执行器{get;set;}
公共bool已处理{get;set;}
已执行公共布尔{get;set;}
公共布尔ISExecutionConfiged{get;set;}
}

我怀疑您必须告诉
实体框架
这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; }

不知道你在问什么,伙计!你希望它做什么?为什么这是不正确的?试着在你问的问题上更清楚一些,希望你的选票旁边的负面符号会消失。如果你问的是我认为你在问的问题,你应该能够在你的上下文中用流畅的API在你的OnModelCreating方法中指定这一点。我会更加认真地学习英语。在你回答的同时我也找到了解决办法。是的,这正是我需要的。非常感谢。