次の形式でデータを取得しています:
[0]: { rkey = "100asb", pkey = "100ap0", ckey = {1/6/2013 3:28:09 AM} }
[1]: { rkey = "yxq4c", pkey = "100iis", ckey = {1/6/2013 6:38:48 PM} }
.
.
.
rkey
と の値にアクセスできる別のメソッドを作成する必要がありpkey
ますckey
。残念ながら、線形ForEach
またはParallel.ForEach
. 検索しましたが、パラメーターにアクセスするための解決策が見つかりませんでした。これを に変換することを提案した人もDictionary
いますが、それが良い方法かどうかはわかりません。それよりもはるかに単純でなければなりません。
私が書いたコードは次のようなものです:
var films = myrollup.GetCompletedMovies(dtstart, dtend).Result;
using (var session = factory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
Parallel.ForEach(films, currentFilm =>
{
dynamic f = currentFilm;
lock (myrollup)
{
var user = User.GetAsync(f.pkey).Result;
var record = new FilmAnalytics()
{
UserID = currentFilm.pkey,
FilmID = currentFilm.rkey,
UserName = user.FirstName,
UserLastName = user.LastName,
UserAlias = user.Alias,
UserEmail = user.Email,
UserFacebook = user.FbEmail,
Dateofcompletion = currentFilm.ckey
};
session.SaveOrUpdate(record);
}
});
transaction.Commit();
}
}
変数films
はIEnumerable<dynamic>
型データを生成します。