我有一個簡單的視圖模型具有這樣的事情...錯誤而訪問導航屬性在EF代碼第一次
視圖模型
public class UserPostCommentViewModel
{
public virtual List<Comment> Comment { get; set; }
public virtual User User { get; set; }
public virtual Post Post { get; set; }
}
,這樣我可以返回有1點發表看法與細節1用戶信息和用戶提交的許多意見....
POST
[Key]
[ScaffoldColumn(true)]
public int PostID { get; set; }
[Required(ErrorMessage="Required")]
[StringLength(250)]
public string Title { get; set; }
[Required(ErrorMessage="Required")]
[DataType(DataType.MultilineText)]
public string Body { get; set; }
[DataType(DataType.Date)]
public DateTime DateCreated { get; set; }
[DataType(DataType.Date)]
public DateTime DateModified { get; set; }
[ScaffoldColumn(false)]
public int UserID { get; set; }
[ScaffoldColumn(false)]
public int? TagID { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
public virtual User Users { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
評論
[Key]
[ScaffoldColumn(true)]
public int CommentID { get; set; }
[DisplayName("Your Comment")]
[DataType(DataType.MultilineText)]
public string Body { get; set; }
[DataType(DataType.Date)]
[ScaffoldColumn(true)]
public DateTime DateCreated { get; set; }
[ScaffoldColumn(true)]
public int PostID { get; set; }
[ScaffoldColumn(true)]
public int UserID { get; set; }
public User User { get; set; }
public Post Posts { get; set; }
用戶
[ScaffoldColumn(true)]
[Key]
public int UserID { get; set; }
[StringLength(15)]
[DisplayName("First Name")]
[Required(ErrorMessage="First Name is Required")]
public string FirstName { get; set; }
[StringLength(15)]
[DisplayName("Last Name")]
[Required(ErrorMessage = "Last Name is Required")]
public string LastName { get; set; }
[DataType(DataType.EmailAddress,ErrorMessage="please enter valid email")]
[DisplayName("Email Address")]
[Required(ErrorMessage = "Email is Required")]
[Remote("CheckUniqueEmail","User",ErrorMessage="An account with this email address already exists.")]
public string Email { get; set; }
[DataType(DataType.Password)]
[Required(ErrorMessage = "Password is Required")]
public string Password { get; set; }
[DataType(DataType.Date)]
[ScaffoldColumn(true)]
public DateTime JoiningDate { get; set; }
[DataType(DataType.Date)]
[ScaffoldColumn(true)]
public DateTime? LastActivityDate { get; set; }
public virtual ICollection<Post> Posts { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
我有一個StronglyTyped視圖與視圖模型,這樣我可以在一個視圖中返回所有三個模特屬性...
但:(我想在該特定帖子的每條評論前面顯示userName而不是userID。所以我在viewmodel中使用ICollection註釋,以便我可以返回註釋的集合。當我嘗試訪問像這樣@ Model.Comments.User.LastName /或電子郵件/或名字的用戶名屬性..我收到編譯錯誤。 ,我不能這樣使用,因爲它集合類型...
我如何使用正在評論中可用的用戶ID ..
請幫助...檢索意見實體將用戶名
心動不如通過在局部視圖中添加工作..
_comments管窺..
在我添加了一些類似這樣的我的部分觀點...
========================
@{
ContextRepository db = new ContextRepository();
var userID = Model.UserID;
var userName = db.EUser.Find(userID).FirstName;
}
嘿..謝謝...我試過這個,並得到以下錯誤... 對象引用未設置爲對象的實例。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。 異常詳細信息:System.NullReferenceException:未將對象引用設置爲對象的實例。
@ patel.milanb看到我的編輯答案 – Eranga
好...我用這樣的事情,現在它的工作......從你的答案學到新的方法,雖然。 。thx共享+1 –