私は多くの投稿を読みましたが、私の答えを見つけることができません.私の質問は少し具体的です.私のシルバーライトプロジェクトでは、ヤフーの天気から温度、ステータス、日付などの気象データを取得し、RSSから変更してデータベースに保存したいと考えています.so を使用して webclient とその DownloadStringAsync および DownloadStringCompleted をデータを取得します。また、サーバーのモデル フォルダーにプレゼンテーション モデルを作成しました (サービスで使用したかったため)。
void xmlclient_DownloadStringCompleted(object sender,DownloadStringCompletedEventArgs e)
{
XNamespace yweather = "http://xml.weather.yahoo.com/ns/rss/1.0";
if (e.Error == null)
{
XElement x = XElement.Parse(e.Result);
weatherquery1 =
from items in x.Descendants("item")
select new BusinessApplication1.Web.Models.WeatherConditionModel
{
PubDate = items.Element(yweather +"condition").Attribute("date").Value,
Status = items.Element(yweather + "condition").Attribute("text").Value
};
}
}
これは私のビューモデルにあり、すべてが機能することをテストしました。データを取得でき、データグリッドまたはリストボックスで結果を確認することもできます。inow データベースにデータを保存したい. ボタンやコマンドではなく自動的に保存したい. 常にデータを読み込んで、たとえば5分ごとにデータベースに保存したい. だから私は自分のサービスを作成したそして、自分で成形できるカスタムインサートを作成します。
private void MapwcModel(WeatherConditionTable wctable, WeatherConditionModel wcPM)
{
wctable.Status = wcPM.Status;
wctable.PubDate = wcPM.PubDate;
wctable.WeatherConditionID = wcPM.WeatherConditionID;
}
[Insert]
[Invoke]
public void InsertWeatherConditionData(WeatherConditionModel WeatherConditionData)
{
WeatherConditionTable wc = WeatherConditionContext.WeatherConditionTables.CreateObject();
MapwcModel(wc, WeatherConditionData);
wc.Status = WeatherConditionData.Status;
wc.PubDate = WeatherConditionData.PubDate;
WeatherConditionContext.WeatherConditionTables.AddObject(wc);
WeatherConditionContext.SaveChanges();
}
そして私の取得データ:
public IQueryable<WeatherConditionModel> GetWeatherConditionData()
{
return from p in this.WeatherConditionContext.WeatherConditionTables
select new WeatherConditionModel
{
WeatherConditionID = p.WeatherConditionID,
Status = p.Status,
PubDate = p.PubDate,
};
}
今、データを強制的に保存する方法がわかりません.iewmodelにこれを書きましたが、機能しませんでした:
foreach (BusinessApplication1.Web.Models.WeatherConditionModel el in weatherquery1)
{
WeatherConditionDomainContext context = new WeatherConditionDomainContext();
EntityQuery<BusinessApplication1.Web.Models.WeatherConditionModel> weatherLoadQuery = context.GetWeatherConditionDataQuery();
context.Load<BusinessApplication1.Web.Models.WeatherConditionModel>(weatherLoadQuery);
context.SubmitChanges(delegate(SubmitOperation operation)
{
if (operation.HasError)
{
operation.MarkErrorAsHandled();
}
}, null);
}
挿入メソッドを強制的に機能させる方法がわかりません。誰か、どこが間違っているか教えてください。どこかにあることは知っています。道を教えてください。よろしくお願いします