无法用相同类型的多个项目创建MVC关系
本文关键字:项目 创建 MVC 关系 同类型 | 更新日期: 2023-09-27 18:09:28
我有一个类Request
,我想有两个属性,BudgetHolder
和FinancialController
,都是单一类型- 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.
最终,我要创建一个页面,允许创建一个请求,以显示两个下拉列表的员工在每个,但目前所有显示的是BudgetHolderId
和FinancialControllerId
的文本框
我当前的代码如下:
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; }
}
所以,我仍然不确定为什么上面没有工作,但我的解决方案是将上面的声明更改为以下
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; }
}
我猜有一个隐式的项目叫做BudgetHolderId
和FinancialControllerId
,它阻止我用相同的名字声明我自己的变量/列。
无论哪种方式,上面的代码现在都可以编译了,当一个新的RequestController被生成时,现有的Employees就会作为下拉列表包含进来。