2012-08-02 85 views
0

我想獲取在其個人資料中擁有博客ID的用戶的用戶名。如何從列表中的另一個實體獲取一個實體

此代碼返回所有的博客,並把它放在一個列表:

 Dim blogs = db.Blogs.Include(Function(b) b.Company) 
     Return View(blogs.ToList()) 

我想包括到該博客列表所屬的用戶名。該數據保存在配置文件實體中(在名爲「BlogId」的字段中)。

這是輪廓實體:

Imports System.Data.Entity 
Imports System.ComponentModel.DataAnnotations 

Public Class UserProfile 

    Public Property UserProfileId() As Integer 
    Public Property UserId() As Guid 
    Public Property CompanyId() As Integer 
    Public Property BlogId() As Integer 
    Public Property IsCompanyOwner As Boolean 
    Public Property IsBlogOwner As Boolean 

End Class 

Public Class UserProfileDbContext 

    Inherits DbContext 
    Public Property UserProfiles As DbSet(Of UserProfile) 
End Class 

我怎樣才能獲得用戶名進入ToList(),以顯示它在我的看法?

謝謝。

+0

我在UserProfile對象的任何地方都看不到用戶名。您是否在公司對象中投射到結果中? – JustinMichaels 2012-08-02 19:59:39

+0

UserId是Users實體的外鍵。博客對象有一個名爲「公司」的字段,但這不相關。 – user1477388 2012-08-02 20:03:06

+0

你能不能在代碼中發佈你的用戶對象? – JustinMichaels 2012-08-02 20:08:43

回答

0

如果你指的是會員的用戶,在這種情況下,使用您的用戶ID指南撥打:

var user = Membership.GetUser(userId) 

然後您可以參考名稱作爲

user.UserName 

所以你最好想要創建一個新的ViewModel類,其中只包含要發送到視圖的數據,而不包含其他內容。在這種情況下,在加載UserProfile條目後,您需要枚舉每個條目並調用GetUser()並使用該結果填充每個ViewModel條目。

 


Public Class UserProfileViewModel 

    Public Property UserProfileId() As Integer 
    Public Property UserId() As Guid 
    Public Property CompanyId() As Integer 
    Public Property BlogId() As Integer 
    Public Property IsCompanyOwner As Boolean 
    Public Property IsBlogOwner As Boolean 
    **Public Property UserName as String** 

End Class 
+0

所以,我不能將兩個模型鏈接在一起,我必須創建一個單獨的模型? – user1477388 2012-08-03 12:20:04

+0

我的意思是,我無法將控制器中的兩個模型鏈接在一起並將它們發送到視圖?相反,我需要創建一個包含視圖中所需信息的獨立模型? – user1477388 2012-08-03 12:51:01

相關問題