私のモデルのすべての列を返すコントローラがあります。しかし、私はモデルを変更するので、私のDateフィールドのDateTime型の私は、次のエラーが表示されます。DateTime? EFモデルでは、.ToListを呼び出して文字列に変換するとnullableではないようです。
は「『バトル』オン 『開始日』プロパティを 『可能System.String』の値に設定することができませんでした。あなたはタイプ 『のSystem.DateTime』がnull以外の値にこのプロパティを設定する必要があります。
私がしたすべては、私は戻って、それがうまく機能した文字列に変更した場合。代わりに、それの前の文字列の?日時を持つように開始日のプロパティを変更し、それを破った。
相続人は私のモデル
public class Battle
{
[Key]
public int BattleID{ get; set; }
public string General { get; set; }
public DateTime? StartDate { get; set; }
}
私がNULL可能のDateTimeに文字列から開始日を変更する前に0
HERESに私のコントローラメソッド
public IHttpActionResult GetAllBattles()
{
using (BattleContext db = new BattleContext())
{
var query = (from results in db.Battle
select results);
List<Battle> output = new List<Battle>();
output = query.ToList();
return Ok(output);
}
}
マインドは、あなたこれがうまく働きました。 (私はそれがDateTimeになりたいので、他の方法では50年または100年以内に簡単に戦いを見つけることができます)。
データベースのDateTime2の値ですか?そうでなければ、それをモデルに割り当てる前に、それをDateTimeに変換する必要があるかもしれません。 –
DBスキーマに 'NOT NULL'と表示されている場合は、C#でnullを使用することで違いはありません。 – Eris
@ChadMcGrathそれは問題を感謝しなかったことを実現しました。 – ngnewb