我有一個定製的Date
類,它包裝DateTime
對象以僅公開日期部分。帶非POCO類的EF
我試圖將其納入一個實體,但得到的異常:
error 3004: Problem in mapping fragments starting at line 6:No
mapping specified for properties Goal.Date in Set Goal.\r\nAn Entity with Key
(PK) will not round-trip when:\r\n Entity is type [EFCodeFirstSandbox.Goal]
是怎麼回事?我如何讓自定義課程在EF世界中發揮出色?
這裏的風俗Date
類的簡單化下來的版本:使用Date
public class Date
{
private DateTime value;
public Date(DateTime date)
{
this.value = date.Date;
}
public static implicit operator Date(DateTime date)
{
return new Date(date);
}
public static implicit operator DateTime(Date date)
{
return date.value;
}
}
實體類:
public class Goal
{
[Key]
public Guid Id { get; set; }
public Date Date { get; set; }
public int Amount { get; set; }
}
編輯:這Date
類只是用於說明目的。我很想知道如何映射自定義非POCO類,而不是如何在SQL中表示日期。 :)
你能指點我什麼能告訴我更多關於創建計算屬性的內容嗎? – FOO
在您的目標類中創建另一個屬性,返回您的日期類型並僅從DateTime屬性計算它。使用[NotMapped]屬性標記日期屬性,或者將其標記爲映射,無論您聲明映射,鍵和關係等。 – Excommunicated
@Chris請參閱我的編輯。 –