私は、SQL ServerデータベースからAsEnumerableを使用して変換し、一連のLinqステートメントを使用して変換するDataTableにデータを取得しています。私の究極の目標は、Linqのクエリを受け取り、私のためにHashTableを生成することです。だからではなく、匿名型の:Linqクエリから複数のキーでHashTableを埋め込むことは可能ですか?
var facebookPosts
= from f in results.AsEnumerable()
where f.GetInt("SocialMediaTypeID").Equals(
(int) SocialMediaRecordType.FacebookPost)
select new {
Headline = f.GetString("Headline"),
Parameters = new Parameters(f.GetString("Parameters")),
SocialMediaUserID = f.GetLong("SocialMediaUserID"),
SocialMediaRecordID = f.GetLong("SocialMediaRecordID"),
GravityScore = f.GetFloat("GravityScore"),
NewsDate = f.GetDateTime("NewsDate", false),
Template = "Facebook"
};
私はこのような何かを行うことができると思います:
var facebookPosts1
= from f in results.AsEnumerable()
where f.GetInt("SocialMediaTypeID").Equals(
(int) SocialMediaRecordType.FacebookPost)
select new Hashtable {
{ "Headline", f.GetString("Headline"),
"SocialMediaUserID", f.GetLong("SocialMediaUserID"),
etc... }
};
これは.NET 4.0で可能ですか?
EDIT:質問を明確にするために、最終的にJSONをブラウザに戻しています。私の会社はHashTableから派生したJsonObjectクラスを作成しました.JsonObjectクラスは最終的にJsonを返すために使用する必要があります。私は何をしたいのですが、上記の例を使用して、持っている結果に行ごとにハッシュテーブル(またはJsonObject)を作成している、f.GetString(「見出し」)の値を持つ見出しという名前のキー、別の鍵SocialMediaUserIDの値がf.GetLong( "SocialMediaUserID")などとなります。 Facebookpostsは、最終的にはそれぞれHashTableまたはJsonObjectの配列またはIEnumerable、いくつかのキーと値のペアになります。私がこのようにすることができない場合、私はfacebookPostsの操作を私が必要とする適切なJsonObject構造に詰め込んでいると思いますか?名前を明示的に指定する必要があります。
辞書ではなくハッシュテーブルを探している理由は何ですか?名前を明示的に指定しようとしているのですか、それともすべてのフィールド自体を繰り返し処理することを期待していますか?それが後者の場合、どの「ゲッター」を使うべきかはどのように分かりますか? 1行につき1つのハッシュテーブル*(つまりIEnumerable)を探していますか?基本的に質問を明確にしてください:) –
@Rob:JSON.NETのようなライブラリを使用してオブジェクトを自動的にJSON文字列に変換することを許可しませんか? – StriplingWarrior
@StriplingWarrior:いいえ、彼らはすでに独自のロールがあります。その間、私は情報を引き出してJsonizeするReflectionに頼った。 – Rob