2017-03-21 8 views
1

LINQクエリが初めてです。解決策を見つけるのを手伝ってください。Entity Frameworkのlinqを使用してデータテーブルの列値を取得します。

ソースがEntity Frameworkデータモデルにあり、currencyIDCurrencyNameの列にバインドされたテーブルcurrencyがソースにバインドされています。

LINQクエリを使用してデータベースから値をDataTableに取得する必要があります。

下記のように私が何かをしようとしたが、それは働いていない:

var dataset = Source.T_Currency 
    .Where(x=> x.CurrencyID == x.CurrencyID && x.CurrencySymbol == x.CurrencySymbol) 
    .Select(x => new x.Currency 
    { 
     CurrencyID = x.CurrencyID, 
     CurrencySymbol = x.CurrencySymbol 
    }).ToList(); 

答えて

0

あなたはLINQは、この例のように参加使用する必要があります。

 var custSupJoin = 
      from sup in suppliers 
      join cust in customers on sup.Country equals cust.Country 
      select new { Country = sup.Country, SupplierName = sup.SupplierName, CustomerName = cust.CompanyName }; 
1

あなたがT_Currencyからすべての行を選択したい場合は、

を試してみてください
Source.T_Currency 
    .Select(x => new 
    { 
     x.CurrencyID, 
     x.CurrencySymbol 
    }) 
    .ToList() 

任意の値で結果をフィルタリングするにはwhere文前に選択:

Source.T_Currency 
    .Where(x => x.CurrencySymbol == myCurrency) // where myCurrency is variable/parameter 
    .Select(x => new 
    { 
     x.CurrencyID, 
     x.CurrencySymbol 
    }) 
    .ToList() 

それがSELECT文を持つ例であるが、実際には、この場合にそれはrequiedされていないので、Source.T_Currency.ToLost()は最初のコードスニペットと同じ結果を返します。差異は値の型にありますが、元のクラスを使用できる場合は、異種型を作成すべきではありません。

+0

はいT_Currencyからすべての行をデータテーブルに選択したいとします。 –

+0

'DataTableテーブル=新しいDataTable(); (var reader = ObjectReader.Create(t))を使用しています。 { table.Load(reader); } ' –

関連する問題