Entity framework ASP.NET MVC 4实体框架实体从成员资格用户配置文件表中获取外键字段
我在一个单独的项目中有实体。其中一个实体需要在Entity framework ASP.NET MVC 4实体框架实体从成员资格用户配置文件表中获取外键字段,entity-framework,asp.net-membership,foreign-key-relationship,Entity Framework,Asp.net Membership,Foreign Key Relationship,我在一个单独的项目中有实体。其中一个实体需要在Web项目中的UserProfile模型中引用UserId,该项目已经在引用实体项目。任何人都可以帮助为我的实体获取一个新的外键(类似于费用实体类,以获取额外的字段支出者,该字段已经是用户档案中的主键,这是一个成员资格表?) namespace expensesAssistant.Entities { /// ///费用 /// 公共类支出项目 { /// ///获取或设置费用的唯一Id /// 公共虚拟整数Id{get;set;} ///
Web
项目中的UserProfile
模型中引用UserId
,该项目已经在引用实体
项目。任何人都可以帮助为我的实体获取一个新的外键(类似于费用
实体类,以获取额外的字段支出者
,该字段已经是用户档案
中的主键,这是一个成员资格表?)
namespace expensesAssistant.Entities
{
///
///费用
///
公共类支出项目
{
///
///获取或设置费用的唯一Id
///
公共虚拟整数Id{get;set;}
///
///获取或设置有关费用的说明
///
公共虚拟字符串ExpenseDescription{get;set;}
///
///获取或设置花费的金额
///
公共虚拟浮动量{get;set;}
///
///获取或设置支出者,该支出者是UserProfile表中的用户ID
///
[外键(“用户配置文件”)]
公共虚拟整数扩展ID{get;set;}
}
}
成员资格表位于我拥有所有实体表的同一个数据库中
我在控制台中尝试了updatedatabase
,在ExpenseEntry
实体中添加此键expenseID
后,我得到如下错误:
类型的属性“ExplorerID”上的ForeignKeyAttribute
“ExpenseSAssistant.Entities.ExpenseEntry”无效。导航
在依赖类型上找不到属性“UserProfile”
“ExpenseSAssistant.Entities.ExpenseEntry”。名称值应为
有效的导航属性名称
提前谢谢。有两个问题 第一个问题是该属性用于导航属性(您似乎没有) 这种导航属性的一个例子是:
public virtual UserProfile Expender { get; set; }
public virtual int ExpenderId { get; set; }
[ForeignKey("ExpenderId")]
public virtual UserProfile Expender { get; set; }
第二个问题是,传递给ForeignKeyAttribute构造函数的名称必须是此类中包含外键的属性的名称,而不是外键引用的表或实体的名称
您的代码应该是这样的:
public virtual UserProfile Expender { get; set; }
public virtual int ExpenderId { get; set; }
[ForeignKey("ExpenderId")]
public virtual UserProfile Expender { get; set; }
我用另一种方式解决了这个问题!从现有的表中,使用模型图,我创建了一个关系。在反向工程之后,我从控制台运行updatedatabase命令。成功了!无论如何,谢谢!