さて、タイトルが言うように。スクリプトコンポーネントの宛先を使用してから、LINQを使用して出力用に処理する行を選択したいと思います。
もう少し背景として、私はこの醜いものを1対多の関係でマージしました。行は次のようになります。
[ID] [Title] [OneToManyDataID]
1 Item one 2
1 Item one 4
1 Item one 3
3 Item two 1
3 Item two 5
ID列とTitle列を持つオブジェクトを[Item]と呼び、[OneToMany]と呼びます。
すべてをスクリプトコンポーネントの宛先にスローし、LINQを使用してアイテムごとにグループ化するようなことを行い、最上位のOneToManyオブジェクトからのみデータを取得できることを望んでいました。のようなもの:
foreach(var item in Data.GroupBy(d=>d.Item).Select(d=> new {Item = d.Key})){
//Then pick out the highest OneToMany ID for that row to use with it.
}
これを実現するにはおそらくもっと良いLINQクエリがあると思いますが、要点は、SSISのスクリプトコンポーネントでは、事前定義されたProcessInputRowメソッドを使用して行ごとにしか操作できないようです。どの行が処理され、どのプロパティがそのメソッドに渡されるかを正確に判断したいところ。
どうすればこれを行うことができますか?