2017-08-25 115 views
0

我正在使用實體框架。我沒有足夠的經驗來解決任何問題。我現在面臨的問題是這樣的:我有兩個類如下所示:如何在實體框架中包含實體特定的屬性?

public class AspNetUser: NormalUser 
{ 
    [Key] 
    public string UserId { get; set; } 

    public string PIN { get; set; } 

    public string FullName { get { return this.LastName + " , " + this.FirstName; } } 
} 

public class OfferReview 
{ 
    [Key] 
    public string OfferReviewId { get; set; } 

    public string UserId { get; set; } 
    public string Review { get; set; } 

    public virtual AspNetUser User { get; set; } 
} 

我需要所有OfferReview屬性綁定與AspNetUser.FullName財產==>我想是這樣的:

return context.OfferReviews 
       .Where(It => It.OfferId == offerId) 
       .Include(it => it.User.FullName) 
       .ToList(); 

這裏offerId是一個函數參數。我無法顯示完整的功能....

我可以很容易地得到上述要求與linq連接的幫助。但我想要一些像lambda表達式之類的東西。

可能嗎?或者如果可能的話,如果不可能,那麼還有其他方法嗎?請幫助

回答

1

你能行通過技術視圖模型

此視圖模型:

 public class ViewModel 
{ 
    public string OfferReviewId { get; set; } 
    public string UserId { get; set; } 
    public string Review { get; set; } 
    public string LastName { get; set; } 
    public string FirstName { get; set; } 
    public string FullName { get { return this.LastName + " , " + this.FirstName; } } 
} 

此查詢:

 var query = context.OfferReview 
      .Where(It => It.OfferReviewId == "1") 
      .Select(p => new ViewModel 
       { 
        OfferReviewId = p.OfferReviewId, 
        Review = p.Review, 
        UserId = p.UserId, 
        FirstName = p.User.FirstName, 
        LastName = p.User.LastName 
       }).ToList(); 
1

您的查詢應該是:

return context.OfferReviews 
       .Where(It => It.OfferId == offerId) 
       .Include(it => it.User) 
       .ToList(); 

這返回一個列表OfferReview實體,每個實體都有一個User對象。

現在在您的視圖中,您可以綁定OfferReview.User.FullName