无法用相同类型的多个项目创建MVC关系

本文关键字:项目 创建 MVC 关系 同类型 | 更新日期: 2023-09-27 18:09:28

我有一个类Request,我想有两个属性,BudgetHolderFinancialController,都是单一类型- Employee。我试图在使用代码优先的方法在MVC 4数据库做到这一点。

当我使用update-database命令时,我得到以下错误

Error: The new name 'BudgetHolderId' is already in use as a COLUMN name and would cause a duplicate that is not permitted.

最终,我要创建一个页面,允许创建一个请求,以显示两个下拉列表的员工在每个,但目前所有显示的是BudgetHolderIdFinancialControllerId的文本框

我当前的代码如下:

public class Request
{
    public virtual int BudgetHolderId { get; set; }
    [ForeignKey("BudgetHolderId")]
    public virtual Employee BudgetHolder { get; set; }
    public virtual int FinancialControllerId { get; set; }        
    [ForeignKey("FinancialControllerId")]
    public virtual Employee FinancialController { get; set; }
}

无法用相同类型的多个项目创建MVC关系

所以,我仍然不确定为什么上面没有工作,但我的解决方案是将上面的声明更改为以下

public class Request
{
    public virtual int BudgetHolderEmployeeId { get; set; }
    [ForeignKey("BudgetHolderEmployeeId")]
    public virtual Employee BudgetHolder { get; set; }
    public virtual int FinancialControllerEmployeeId { get; set; }
    [ForeignKey("FinancialControllerEmployeeId")]
    public virtual Employee FinancialController { get; set; }
}

我猜有一个隐式的项目叫做BudgetHolderIdFinancialControllerId,它阻止我用相同的名字声明我自己的变量/列。

无论哪种方式,上面的代码现在都可以编译了,当一个新的RequestController被生成时,现有的Employees就会作为下拉列表包含进来。