กำลังปรับปรุงเป็น nullable DateTime สนามเป็นโพรโทคอล aimcomment ผลตรวจในปริยาย DateTime ค่า(0001-01-0100:00:00.0000000)

0

คำถาม

ฉันกำลังใช้ ASP.NET Boilerplate MVC(ไม่แข็ง)อยู่ในต้นแบบโครงการของฉันซึ่งใช้ EF6 ที่ ORM. ฐานข้อมูลเป็นภาษา sql เซิร์ฟเวอร์อธิบายได้

นี่คือของรายการสิ่ง(ไม่สนใจไม่เกี่ยวข้องกันคุณสมบัติ):

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

ตอนที่ฉันสร้างใหม่ของเราไปช่องข้อมูลนี้แล้วสร้างเป็นโพรโทคอล aimcomment. ดังนั้นทุกอย่างที่ทำงานเป็ intented ในตอนแรก แต่ตอนที่ฉันพยายามที่จะปรับปรุงเป็นวัตถุด้วยของธรรมดาแบบบริการเรียกมัภาพแผ่นเหล็ก,สกรูขึ้น.

นี่เป็นวิธีการอยู่ในโปรแกรมบริการนักเรียน:

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

นี่ควรจะตั้งค่าเรื่องนั้นต้องโพรโทคอล aimcomment. ฉันยังพยายาม asset.LastControlTime = null;. แต่ในที่สุดมันเขียน"0001-01-0100:00:00.0000000"เพื่อนที่สนามในฐานข้อมูล ฉันมีหลายที่เลยในรหัสที่ฉันควบคุมสำหรับโพรโทคอล aimcomment ค่าดังนั้นตอนนี้ฉันต้องเปลี่ยนนิวตรอนของเก่าของแฟ้มหรือผมต้องหาทางที่จะปรับค่าที่สนามเพื่อเพียงโพรโทคอล aimcomment.

ฉันตรวจดูคำถามที่คล้ายกันอยู่แต่ไม่สามารถหาคำตอบเองละกันนะ พวกเขาทั้งหมจะบอกเรื่อง nullable DateTime ซึ่งฉันมีแผนเรียบร้อยแล้วล่ะ ในภาษา sql เซิร์ฟเวอร์โต๊ะรูปแบบชุดสี,ชนิดข้อมูลเป็น datetime2(7)ดังนั้นฉันเดาว่านั่นถูกต้องเหมือนกัน โอ้และทำการลบที่ DataType หมายเหตุประกอบ annotation tool ยังไม่ได้เปลี่ยนแปลงอะไรเลย

ดังนั้นฉันพลาดอะไรที่นี่ไป? สิ่งที่ฉันควรจะตรวจสอบเพื่อหากษาที่สถาบันเหมือนกันนะ

1

คำตอบที่ดีที่สุด

2

ฉันคิดว่าถ้าทั้งหมดผิคุณสามารถ simplify ส่วนใหญ่ของรหัสของคุณโดยกา implementing ที่:

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

มันไม่จริงตัดที่หัวใจของปัญหาแต่จะปล่อยให้คุณความคืบหน้าโดยไม่ต้องเปลี่ยนทั้งหมดของคุณ==โพรโทคอล aimcomment แล้ว.HasValue ทั่วทั้งหมดโปรแกรม

2021-11-23 11:44:25

มันได้ผล! ดังนั้นมันดูเหมือนปัญหาของโกหกอยู่ที่ไหนสักที่ระหว่างที่เก็บและ ORM boilerplate รหัสการเปลี่ยนโพรโทคอล aimcomment ค่าที่น้อยที่สุด datetime. ฉันไม่รู้ว่ามันคืออะไรแต่ฉันยุ่งเกินกว่าจะสนใจตอนนี้ ดังนั้นขอบคุณมากสำหรับคนนี้วิธีแก้ปัญหาได้ง่าย
Emre Can Serteli

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

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

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่