2016-07-18 6 views
1

他の誰かがこれを尋ねてきたと確信していますが、私が解決策を見つけるために考えていたものを探しました。Linqを使用して複数のテーブルを読む

私は私のSQL DBにテーブルを一致させるために、以下のデータモデルを持っている:スタイルとファブリックの下に

 var query = (from t in db.tblProfiles 
        select new ProfileDetailModel() 
        { 
         id = t.id, 
         name = t.name 
        }); 

     var querylist = await query.ToListAsync(); 

(試作したLINQクエリ:

public class ProfileDetailModel 
{ 
    public string id { get; set; } 
    public string name { get; set; } 
    public StyleList[] styleList { get; set; } 
    public FabricList[] fabricList { get; set; } 

} 

public class StyleList 
{ 
    public string id { get; set; } 
    public string name { get; set; } 
} 

public class FabricList 
{ 
    public string id { get; set; } 
    public string fabricName { get; set; } 
} 

これは、現在のクエリのコードです)

 var styleQuery = (from t in db.tblStyles 
        select new styleList() 
        { 
         id = t.id, 
         name = t.name 
        }); 

     var fabricQuery = (from t in db.tblFabrics 
          select new fabricList() 
          { 
           id = t.id, 
           name = t.name 
          }); 

     if (queryList.Count > 0) 
     { 
      var item = queryList[0]; 
      item.styleList = styleQuery; 
      item.fabricList = fabricQuery; 
     } 

私は、styleListとfabricLの複数の項目を持つ1つのprofileDetailModelを持っていますist。例えば。

ProfileDetailModel

データ:パンツ

  • styleList:ベルボトム、ストレートレッグ、ブーツフィット

  • fabricList:ジャン=青、ジーンズ、黒、格子縞

上記の3つのモデルはすべてmy dbのテーブルです。私は3つの別々のクエリを発行してデータを読み込み、事実の後に組み立てることができました。しかし、私は1回のショットでメインのクエリに2つの配列を含めるためにlinqクエリを行う方法はありますか?

+0

を、ProfileDetailModelはStyleListとファブリックリストの各項目について一覧表示されます。 styleListとfabricListの多くに1つのProfileDetailModelがあります。私はそれを含むように質問を修正します – DaBlue

+0

linqはデータアクセスとはまったく関係ありません...これは[tag:entity-framework]か[tag:linq2sql]ですか? –

+0

紺碧のプラットフォーム上のエンティティフレームワーク – DaBlue

答えて

0

このお試しください:私は重複を持っていますので、私は参加しない場合

var newQuery = (from p in db.tblProfiles 
        select p) 
        .AsEnumerable() 
        .Select(x => new ProfileDetailModel() 
        { 
         id = x.id, 
         name = x.name, 
         styleList = styleQuery, 
         fabricList = fabricQuery 
        }); 
+0

@DaBlueはうまく見えます。結果を投稿してください。 –

+0

styleQueryとfabricQueryの意味は? profileDetailModelクエリ(varクエリ)のような別のクエリを作成しますか? – DaBlue

+0

[他のテーブルをここにロード]という行があるとき、そのデータがどこから来ているのかわからないので、それらを初期化することを意図していると思いました。私は実際LinqPadにすべてのものをテストして入れました。 – Lapis

関連する問題