FluentNHibernate: ความแม่นยำเริ่มต้นของ DateTime เปลี่ยนไปหรือไม่

ขณะนี้ฉันกำลังพยายามย้ายจาก FluentNHibernate 1.4 / NHibernate 3.4.1 เป็น FluentNHibernate 2.1.2 / NHibernate 5.2.4 ฐานข้อมูลที่ใช้คือ DB2 LUW 11.1 เฟรมเวิร์กเป้าหมาย .NET คือ 4.61

เส้นการแมปที่มีปัญหา:

 Map(x => x.TimeStamp).Column("TS").Nullable();

ฉันเขียนการทดสอบความคงอยู่เมื่อนานมาแล้วเพื่อให้แน่ใจว่าไม่มีมิลลิวินาทีที่คงอยู่จากคุณสมบัติ DateTime ที่แมปไปยังฟิลด์ TIMESTAMP การทดสอบผ่านการทดสอบกับชุดประกอบเก่า แต่ล้มเหลวกับชุดประกอบใหม่ ฉันต้องใช้ DateTimeNoMsType เป็นประเภทที่กำหนดเองตอนนี้เพื่อรับพฤติกรรมเก่า (คิดถึงการใช้แบบแผนเพื่อให้จัดการโดยทั่วไป):

Map(x => x.TimeStamp).Column("TS").Nullable().CustomType<DateTimeNoMsType>();

คำถามของฉัน: ฉันพูดถูกไหมที่บอกว่ามีการเปลี่ยนแปลงในการจัดการเริ่มต้นของคุณสมบัติ DateTime ฉันพยายามค้นหาเอกสาร / คำอธิบายเหตุการณ์สำคัญของเวอร์ชัน nhibernate และ nhibernate ได้อย่างคล่องแคล่วที่ GitHub น่าเสียดายที่ไม่มีประโยชน์...




คำตอบ (1)


พบว่ามันเป็นการเปลี่ยนแปลงครั้งใหญ่จาก NHibernate 5.0.0

https://github.com/nhibernate/nhibernate-core/blob/5.1.5/releasenotes.txt

  • ประเภท NHibernate DateTimeType ซึ่งเป็นค่าเริ่มต้นสำหรับ .Net DateTime จะไม่ตัดเศษส่วนวินาทีอีกต่อไป ใช้ DateTimeNoMsType หากคุณต้องการตัดเศษส่วนเป็นวินาที นอกจากนี้ยังใช้กับคู่ค้าในพื้นที่/Utc ด้วย
person Udontknow    schedule 28.03.2019
comment
ใช่ มันไม่เกี่ยวอะไรกับ FluentNHibernate - person Oskar Berggren; 04.04.2019