C# 如何在MVC中选择Viewmodel
这是我的桌子,我从中得到我的朋友名单。为此,我的模型如下所示:C# 如何在MVC中选择Viewmodel,c#,asp.net-mvc,linq,entity-framework-4,C#,Asp.net Mvc,Linq,Entity Framework 4,这是我的桌子,我从中得到我的朋友名单。为此,我的模型如下所示: [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid UserRelationshipId { get; set; } public string Id { get; set; } public string SecondUserId { get; set; } // 0 for Request pending // 1 for Reques
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UserRelationshipId { get; set; }
public string Id { get; set; }
public string SecondUserId { get; set; }
// 0 for Request pending
// 1 for Request Accepted
// 2 for Declined
// 3 For Blocked
public int Status { get; set; }
public string ActionUserId { get; set; } // who have taken action against the status
[ForeignKey("Id")]
public virtual ApplicationUser Users { get; set; }
现在我正在使用一个查询,我必须在其中获取我的朋友列表:
string LoginId = User.Identity.GetUserId();
var Searchuser = from u in db.UserRelationships where u.Id == LoginId && u.Status == 1
select new UserViewModel
{
Fname = u.Users.FirstName,
Lname = u.Users.LastName,
Gender = u.Users.Gender,
Id = u.Id,
CurrentCity = u.Users.CurrentCity
};
我正在获取自己的数据,因为我已经将我的LoginId与id进行了比较。问题是如何获取SecondUserId的数据?对它的查询是什么?我可以通过使用联接查询来实现这一点,但我想避免它。没有联接查询有什么办法吗?您可以通过执行第二个查询来实现这一点:
string LoginId = User.Identity.GetUserId();
// Get the user relationship entity
var userRelationship = (from u in db.UserRelationships
where u.Id == LoginId && u.Status == 1
select u).FirstOrDefault();
// Get the second user, using the values in the user relationship entity
var secondUser = db.Users.Find(userRelationship.SecondUserId);
// Generate the view model
var viewModel = new UserViewModel()
{
Fname = userRelationship.Users.FirstName,
Lname = userRelationship.Users.LastName,
Gender = userRelationship.Users.Gender,
Id = userRelationship.Id,
CurrentCity = userRelationship.Users.CurrentCity
};
请你把你的问题说清楚一点,我很困惑。@Coulton我在模型中提到过,请检查是否有属性seconduserID,它是向我发送friendRequest的id,反之亦然。因此,你想在我的搜索中得到该id的列表,其中id将是loginuserIdSorry,我错过了。不过我还是不明白这个问题:(@Coulton忘了你只需检查模型,其中id是loginId和seconduserId,他们现在是我的朋友,如何从db.users获取数据,因为我已经将id作为外键。只需进行第二次查询?我得到的结果与视图模型返回logiuserid ony的详细信息相同