0

Entity Framework を使用して SQL Server から日時を取得しています。私のデータベースの形式は、2013-01-01 00:00:00.000Entity Framework を介して JSON 形式で取得したときと同じように、"\\/Date(1356980400000+0500)\\/".

これが私のコードです

public class SurveyData
{       
        [DataMember]
        public DateTime? CreatedDate { get; set; } 
}

var surveyDataList = (from survey in context.FDT_SURVEY                             
                      where survey.Name == surveyName 
                      select new SurveyData
                          {
                              SurveyID = SqlFunctions.StringConvert((double)survey.SURVEY_ID).Trim(),
                              CreatedDate = survey.CREATED_DATE,
                          }
    );

私のデータベースでは、のデータ型はCREATED_DATEですdatetime

何が問題なのか理解できません。どんな助けでも!

4

2 に答える 2

3

これを試して:

    [DisplayFormat(DataFormatString = "{0,d}")]
    [DataType(DataType.DateTime)]
    public DateTime? CreatedDate { get; set; } 
于 2013-05-16T11:26:23.737 に答える
1

Entity Framework は JSON 形式では何も返しません。.NET オブジェクトにデータを設定するか、データベースに .NET オブジェクトのデータを設定します。デバッガーをアタッチするとCreatedDate、正しい値が含まれていることが示されると思います。

実際の問題は、質問へのコメントにもかかわらず、JSON には「date」または「datetime」タイプの概念がないという事実に関係している可能性が高くなります。「正しい」JSON 日付形式を参照してください。一部のシリアル化コードは、.NETSurveyDataクラスを取得し、.NET フレームワークの JSON シリアライザー (おそらく ) を使用して JSON にシリアル化DataContractJsonSerializerし、表示されている形式でそれを書き出しています。これは、WCF であるか、古いバージョンの ASP.NET MVC または Web API である可能性があります。

それ以降のバージョンの ASP.NET では、NewtonSoft JSON.netライブラリを使用してオブジェクトのシリアル化を実行します。デフォルトでは、これらは ISO 8601 形式を使用します。これは、世界のほとんどが日付または日時フィールドの JSON オブジェクトに期待するものです。

于 2015-08-20T16:40:51.103 に答える