転置し、2 つのフィールド (名前と値) を持つ ac# リストに保存する SQL テーブル (リストは変更可能) のリストがあります。
例: table Addresses (Id int、DocId int、Type int、StreetName varchar、StreetNo int) -- 他のテーブルには他のデータ型があります。
SELECT Id , DocId, Type , StreetName , StreetNo FROM Addresses WHERE DocId = 2
これにより、転置したい複数のレコードが生成されます。
Q1:テーブルを転置するときの最善のアプローチは何ですか?
1.SQL転置。列は変換(CAST)する必要がありますが、読みやすくするために:
SELECT Field, Value FROM
( SELECT Id, DocId, Type, StreetName, StreetNo FROM Addresses WHERE DocId = 2) p
UNPIVOT
(Value FOR Field IN (Id, DocId, Type, StreetName, StreetNo)) AS unpvt
2. C# 転置。テーブルは転置されずに送信されます。
foreach (string tb in Tables)
{
var results = context.Database.SqlQuery("SELECT * FROM "+ tb +" WHERE DocId = 2");
//Transpose results.
}