0

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 が使用されています。

私は間違った場所を見ていますか、それとも何かが欠けていますか?

4

1 に答える 1

0

同様の問題がありました。

私の場合、テーブルのプロパティ「Server Data Type」の値がありませんでした。プロパティ「Type」を DateTime として定義しましたが、十分ではありませんでした。

于 2013-02-06T20:13:39.667 に答える