2013-10-06 54 views
0

在我的网站中,用户可以将foreignExpressions添加到他的帐户。用户模型如下:获取表中的外键

[Table("UserProfile")] 
    public class UserProfile 
{ 
    [Key] 
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public int UserId { get; set; } 
    public string UserName { get; set; } 

    public List<ForeignExpression> learnedexpressions { get; set; } 
} 

然后在控制器我想获取当前用户存储的表情是这样的:

db.ForeignExpressions.Select(f => f.UserId == Membership.GetUser().ProviderUserKey); 

然而,ForeignExpression不包含用户ID字段,所以f没有可见的UserId。但UserProfile有一个ForeignExpressions集合,所以我在ForeignExpression表中有一个UserId字段。我很困惑,我该如何为我的用户获取ForeignExpressions?

编辑:

public class ForeignExpression 
{ 
    public int ID { get; set; } 

    public string expression { get; set; } 
    public string context { get; set; } 
    public string meaning { get; set; } 
    public DateTime dateAdded { get; set; } 


} 
+0

您可以编辑您的文章你的'ForeignExpression'类? –

+0

只是一个建议。为了拥有一个'FK',你不需要在你的'UserProfile'类似''​​public virtual ICollection ForeignExpression {get;组; }'并在你的'ForeignExpression'中 - 'public int UserProfileId {get;组; }和公共虚拟UserProfile UserProfile {get;组; ''? – Leron

回答

1
int userID = Membership.GetUser().ProviderUserKey; 

db.UserProfiles.Find(q => q.UserID == userID).LearnedExpressions.ToList();