2017-08-25 11 views
0

私はEntity Frameworkを使用しています。私はあらゆる種類の問題を解決するのに十分な経験がありません。私が今直面しています問題は、このです:ここに示したように、私は2つのクラスを持っている:Entity Frameworkにエンティティ固有のプロパティを含めるにはどうすればよいですか?

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; } 
} 

私は==>私はこのような試みたAspNetUser.FullNameプロパティを持つすべてOfferReviewプロパティをバインドする必要があります。ここでは

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

offerIdは関数パラメータです。私は完全な機能を表示することができません....

私は簡単にlinqの助けを借りて上記の要件を得ることができます。しかし、私はラムダ式のようなものを求めています。

それは可能ですか?または、もし可能でないなら、もし可能ならば、他の方法もありますか?あなたが技術のViewModel

することにより、このビューモデルをそれを行うことができます

答えて

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(); 

このリストを返すそれぞれがUserオブジェクトを持つOfferReviewエンティティの

ビューでは、OfferReview.User.FullNameをバインドできます。

関連する問題