您可以看到我想要得到的結果。這很容易使用循環,但我不明白如何使用LINQ擴展方法實現這樣的結果爲特定實體選擇屬性LINQ
我有兩個上下文針對一個數據庫。 ApplicationUser是我從同一個數據庫獲得的認證類和profileDTO配置文件信息。
ProfileDTO屬性:串ID,串名字,姓氏串
兩個表共享相同的ID,但不連接既不通過導航屬性也不在DB的任何引用。
IEnumerable<ViewModels.User.IndexViewModel> model;
IEnumerable<Models.ApplicationUser> users;
var profilesDtos = _profileService.GetAll();
using (var context = new Models.ApplicationDbContext())
{
users = context.Users.ToList();
}
model = users.Select(user =>
new ViewModels.User.IndexViewModel
{
Id = user.Id,
Email = user.Email,
PhoneNumber = user.PhoneNumber,
LockedOutTill = user.LockoutEndDateUtc ?? default(DateTime),
Roles = UserManager.GetRoles(user.Id)
});
foreach (var user in model)
{
var userProfile = profilesDtos.FirstOrDefault(o => o.Id == user.Id);
if (userProfile != null)
{
user.FirstName = userProfile.FirstName;
user.LastName = userProfile.LastName;
}
};
我想獲得所有用戶,但名稱僅在具有配置文件的用戶中設置。
非常感謝。你還可以幫我使用LINQ擴展方法重寫它嗎? – prutya