2012-05-13 9 views
0

WP7のローカルデータベースにDateStampを使用してデータを格納しようとしています。私はMSDN Guidanceを踏襲し、コードの下に作成しました:WP7、ローカルデータベース、DateTime列のキャスト例外

[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 
    }    
} 

しかしdb.SubmitChanges(); 'のタイプから変換できませんでした」というメッセージでInvalidCastExceptionを投げ続けますSystem.DateTime 'を入力して' System.Byte [] 'と入力してください。 "

私はデータベース関連の問題を指摘するものは見つかりませんでした。使用した元の例にはDateTimeが含まれていませんでしたが、Silverlightshow.netの例では、非常によく似たコンテキストでDateTimeを使用しています。

私は間違った場所を見ていますか、私は行方不明ですか?

+0

Annoyingly、私は今、私の携帯電話でそれをテストして、それはちょうどうまく動作するように見えます。私はベータテスターを持っていないし、それが必ずしもそれがエミュレーターで作業していないそれは他の携帯電話で動作すると仮定することはできません満足していません。 – Hans

答えて

0

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

私の場合、テーブルのプロパティ "Server Data Type"の値が失われていました。私はDateTimeとして定義されたプロパティ "Type"を持っていましたが、十分ではありませんでした。

関連する問題