Orang mungkin berpendapat bahwa ini lebih cocok sebagai komentar, tetapi pada dasarnya, ini terlalu lama untuk itu.
Dan:
Anda harus membantu saya sedikit karena saya tidak memiliki sistem kerja, jadi saya melakukan ini dari atas kepala saya. (dan saya sedikit terburu-buru)
Pertama, mulai dengan properti yang tidak dipetakan:
[NotMapped]
public DateTime ExpiryDate { get; set; }
Properti ini tidak dipetakan. Ini mungkin menyebabkan beberapa kesalahan mengenai database yang tidak cocok dengan model, tetapi kami dapat mengatasinya. Properti ini tidak akan terisi secara otomatis saat mengkueri data. Jadi, kita perlu cara untuk menghadapinya sendiri.
Misalnya, (yang merupakan contoh buruk karena kita membutuhkan konteks dalam entitas di suatu tempat ):
[NotMapped]
public DateTime? ExpiryDate
{
get
{
//of course you'll need some caching here
var s = context.Database.SqlQuery<string>("query to select datetime as string");
//additional logic to determine validity:
if (s == "0000-00-00")
return null;
//else:
//do the conversion
}
}
Pertanyaan dasar di sini; seberapa jauh Anda ingin mendukung ini dalam kerangka EF? Apakah Anda hanya perlu membacanya, atau menulis juga, menggunakan change tracker dari EF dll?
Ada kemungkinan lain, misalnya, untuk melakukan CAST ke nvarchar dalam SQL itu sendiri untuk mendapatkan data dan memprosesnya lebih lanjut.
Mungkin ModelBuilder
memperlihatkan beberapa opsi tambahan.