WP7 のローカル データベースに DateStamp を使用してデータを保存しようとしています。MSDN ガイダンスに従って、以下のコードを作成しました。
[Table]
public class HistoricGame
{
[Column(IsDbGenerated = true, IsPrimaryKey = true)]
public int Id { get; set; }
[Column]
public DateTime DateStamp { get; set; }
[Column]
public string GameId { get; set; }
[Column]
public int Score { get; set; }
[Column]
public int LongestSequence { get; set; }
}
public class HistoricGameContext : DataContext
{
public const string ConnectionString = "Data Source=isostore:/NumbersNerdDB.sdf";
public HistoricGameContext()
:base(ConnectionString)
{}
public Table<HistoricGame> HistoricGames
{
get { return GetTable<HistoricGame>(); }
}
}
これは、次のデータベースに書き込むために呼び出されます。
private void StoreThisGame()
{
using (var db = new HistoricGameContext())
{
if (!db.DatabaseExists())
db.CreateDatabase();
var game = new HistoricGame
{
DateStamp = DateTime.Now,
GameId = "1",
LongestSequence = _currentGame.LongestCorrectSequence,
Score = _currentGame.TotalPoints
};
db.HistoricGames.InsertOnSubmit(game);
db.SubmitChanges(); //<- This is where it throws an InvalidCastException
}
}
ただし 、「型 'System.DateTime' から型 'System.Byte[]' に変換できませんでした」というメッセージdb.SubmitChanges();
をスローし続けます。InvalidCastException
データベース関連の問題を指摘するものは何も見つかりません。私が使用した元の例には DateTime が含まれていませんが、Silverlightshow.netの例では非常によく似たコンテキストで DateTime が使用されています。
私は間違った場所を見ていますか、それとも何かが欠けていますか?