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命令。成功了!无论如何,谢谢!