2012-04-01 9 views
0

コントローラー内の2つのステートメントの結合に問題があります。両方のステートメントは機能しますが、1つの要素として機能することはできません。コントローラー内の2つのステートメントの接続

最初のステートメントは、ユーザー名がログオンしたユーザー名と一致したときにユーザーのデータを表示することです。 これは問題なく動作します。

public ViewResult Index() 
    { 
     var myrecords = db.Customers.Where(UserData => UserData.UserName.Equals 
       (User.Identity.Name)).ToList(); 

     return View(myrecords); 
    } 

2番目のステートメントは、テーブルを接続してデータを表示するためのものです。これはうまく動作します

これで、両方のステートメントが1つに接続されるので、ログオンしたユーザーのデータのみが表示されます。

var caradverts = db.CarAdverts 
        .Include(c => c.BodyType) 
        .Include(c => c.Car) 
        .Include(c => c.Colour) 
        .Include(c => c.Customer) 
        .Include(c => c.EngineSize) 
        .Include(c => c.fuel) 
        .Include(c => c.SalesPlan) 
        .Include(c => c.Transmission) 
        .Include(c => c.year) 
        .Where(c => c.Customer.UserName == User.Identity.Name) 
        .ToList(); 

あなたが本当にかかわらず、これらのInclude文のすべてが必要です:

何かアドバイスはこれについてどのように

答えて

1

を歓迎しますか?それらのほとんどは、単純なプリミティブプロパティであり、関連するエンティティではないようです。

また、あなたがシングルユーザー私はこのようなクエリを書き直すでしょうからデータたい最初のケースでは最も可能性が高いので:次に

var userRecord = db.Customers 
        .SingleOrDefault(u => u.UserName == User.Identity.Name); 

は、単一Customerのレコードに対処するためにそれに応じてモデル/ビューを更新しますコレクションではありません。

+0

必要に応じて処理します –

+0

価値があるため、それらの 'インクルード'のほとんどは完全に冗長です。それらのうちの1つがナビゲーションプロパティを参照する場合は、それが必要です。しかし、ToListを呼び出すと、EFはエンティティのプロパティをロードします。 –

関連する問題