2014-03-03 53 views
0

我一直試圖從已加入主用戶表的表中獲取數據,第二個表用於存放圖像。我現在的代碼發佈在下面,當我想要檢索ImagePath字段時,只從表中返回ImageID,只是爲了說明這是一個單獨的表格,因爲用戶可以添加許多圖像。加入表格並從中獲取數據

這些機型:

[Table("accountInfo")] // Table name 
public class accountInfo 
{ 
    [Key] 
    public int AccountID { get; set; } 
    public int UserId { get; set; } 
    public int UserIdent { get; set; } 
    public string LastName { get; set; } 
    public string FirstName { get; set; }  
    public virtual ICollection<UserImages > UserImages { get; set; } 
} 

[Table("UserImages")] // Table name 
public class UserImages 
{ 
    [Key] 
    public int ImageID { get; set; } 
    public int AccountID { get; set; } 
    public string ImagePath { get; set; } 
    public string ImageDesc { get; set; } 
    public int ProfileImage { get; set; } 
} 

控制器:

public ActionResult Index() 
{ 
    int id = (int)WebSecurity.CurrentUserId; 
    var users = db.AccountInformation.Include(c => c.UserImages).Where(c => c.UserId == id); 

    return View(users.ToList());     
} 

我假設我已經錯在建立模型。誰能幫忙?

+0

是否有兩個表 - 「accountInfo」和「AccountInformation」? – siddharth

+0

我使用了visual webdevelopers scaffolding,這就是放置它,它似乎直接與accountInfo關聯。 – user2029541

回答

0
var a = db.AccountInformation.Include(c => c.UserImages.Select(x => x.AccountId)).Where(c => c.UserId == id); 
+0

它給出了一個錯誤,說'不能將lambda表達式轉換爲類型字符串,因爲它不是一個委託類型' – user2029541

+0

@ user2029541編輯答案 –

+0

謝謝斯科特刪除了lambda錯誤,但仍然有問題在視圖中我無法訪問字段ImagePath。這是說它不是當前情況的一部分?我使用Razor - @html DisplayFor(modelItem => item.Imagepath) – user2029541

相關問題