업데이트 null 을 허용하는 날짜 필드를 null 로 결과를 기본으로 날짜/시간 값(0001-01-01 00:00:00.0000000)

0

질문

내가 사용하는 ASP.NET 보일러 MVC(지 핵심)템플릿을 내 프로젝트에서 사용하는 EF6 로 ORM. 데이터베이스는 SQL Server 표현합니다.

여기에 내 entity 체(을 무시하고 비-관련성):

public class Asset : AggregateRoot<long>
{
    [DataType(DataType.DateTime)]
    public DateTime? LastControlTime { get; set; }
}

할 때 내가 만드는 새 자산,이 필드를 적절하게로 만든 NULL 입니다. 그래서,모든 작품으로 intented 습니다. 하지만하려고 할 때 개체 업데이트와 함께하는 간단한 서비스를 호출,그것은 나사로까지.

여기에서 방법 응용 프로그램 서비스 클래스:

public void ResetLastControlTime (EntityDto<long> input)
{
    var asset = Repository.Get(input.Id);
    asset.LastControlTime = default(DateTime?);
}

이 다시 설정해야 하는 필드 null 입니다. 도 asset.LastControlTime = null;. 그러나 결국 그것의 서면"0001-01-01 00:00:00.0000000"하는 분야에서 데이터베이스입니다. 내가 많은 장소에있는 코드는 제어를 위한 null 값 그래서 이를 변경했 톤의 오래된 파일이나 나는 찾아야 어떤 방법으로 다시 설정하는 분야를 단순히 NULL 입니다.

체크 유사한 질문에 여기에서 찾을 수 없습니다 하지만 대답. 들 모두에 대해 알려 널 날짜/시간,내가 이미 있습니다. SQL 서버에서 테이블 스키마 데이터 형식 datetime2(7)다,그래서 나는 정확도. 오 및 삭제 데이터 주석은 또한 아무것도를 변화하지 않았다.

그래서 나는 무엇을 놓치까요? 나는 무엇을 해야 확인을 찾는 문제입니까?

1

최고의 응답

2

난 모든 사람이 실패하는 경우,단순화할 수 있습니다 대부분의 코드에 의해 다시-구현하는 객실:

public class Asset : AggregateRoot<long>
{
    public DateTime? _LastControlTime;
    [DataType(DataType.DateTime)]
    public DateTime? LastControlTime { 
      get {
        return _LastControlTime;
      }
      set {
        if (value == DateTime.MinValue) {
          _LastControlTime = null;
        } else {
          _LastControlTime = value;
        }
    }
}

그것은 없습의 심장에 문제가지만,당신이 진행 상황을 변경하지 않고 당신의 모든==null.HasValue 전체에 걸쳐 프로그램입니다.

2021-11-23 11:44:25

일했다! 그래서 그것은 보인다 문제가 있는 사이 어딘가에 저장소 및 ORM 상용 코드,변환 null 값을 최소 datetime. 내가 무엇인지 몰라 하지만 나는 너무 바빠서 치료 지금 있다. 그래서,아주 많이 감사합니다 이를 위해 간단한 솔루션을 제공합니다.
Emre Can Serteli

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................