Linq to Entitiesの助けを借りて、MSSQLデータベースの値をタプルリストに入力する必要があります。以下のコードスニペットは、1データベース行に1タプルエントリが反映されたタプルリストを取得するのに役立ちます。 calculateDataに3つの行がある場合、Field1
からField4
で作成されたそのリストに3つのタプルエントリがあります。タプルリストを埋め込むLINQクエリ
var queryResult = (from a in calculate
join b in calculateData on a.Id equals b.CalcId into c
where a.SpecialID == 2023 && a.VersionId == 1
orderby a.InternalOrderNr ascending
select new
{
a.Field1,
a.Field2,
a.Field3,
myField4 = c.Select(d => new {
d.Field1, d.Field2, d.Field3, d.Field4})
}).ToList();
var result = queryResult.Select(r => new Storage
{
myField1 = r.Field1,
myField2 = r.Field2,
myField3 = r.Field3,
myField4 = r.myField4.Select(t => new Tuple<int,int,decimal,string>
(
t.Field1,
t.Field2,
t.Field3,
t.Field4)
).ToList()
});
return result;
をしかし、私に必要なのは少し異なっている:
のコードは、以下のことが可能になります。リスト内の合計9つのタプルエントリの3つのデータベース行が必要です。例:
データベースには、1行に4つの列(列1、列2、列3、列4)が含まれています。
さらに、3つの行があります。
タプル1:DB-行1および列1、列2、0、0
タプル2:DB-行1とColumm2、COLUMN3、0、1
タプル3:DB-行1とColumm3、Column4、0 、2
タプル4:DB-行2及び列1、列2、1、0
タプル5:DB-行2及びColumm2、COLUMN3、1,1
タプル6:DB-行2及びColumm3、Column4、1、2
タプル7:DB-Row3とColumn1,2,2,0, タプル8:DB-Row3とColumm2、Column3,2,1 1
タプル9:データベースの行とタプルの間に1マッピング:DB-ROW3とColumm3、Column4、2、2
だからここでの違いは、1が存在しないことです。私は1つのデータベース行の中からいくつかのタプルを作成する必要があります。上の例では、3つのTupleエントリを持っていますが、それは異なっていても、多少でもかまいません。
'タプル1:DB-Row1とColumn1、Column2、0、0'で0をどういう意味ですか?そして、col1、col2、col0(前の質問を参照)、最初の行のcol0を意味しましたか? – Xiaoy312
0は、たとえば静的な値です。したがって、1つのデータベース行に3つのタプルを作成する必要があります。
Tuple.Creation(Column1、Column2、0、0) – Maik
結果セットの各行から2列の値の可能な組み合わせをそれぞれ2タプルで格納したい場合は、それは正しいと思いますか?このソリューションでは、任意の数の行または列を処理する必要がありますが、常に2タプルが使用されます。 – Zack