簡體   English   中英

實體框架代碼首先將類型保存為字符串

[英]Entity Framework Code First Saving type as string

我正在使用Entity Framework Code First,並且有一些像這樣的System.Net.Mail.MailAddress類的Classes。

public class Person 
{
 public MailAddress Email { get; set; }
}

當EF嘗試創建數據庫時,我收到此錯誤

"Problem in mapping fragments starting at line 6 No mapping for properties Person.Email"

如何告訴EF只將Email.ToString()的結果保存到數據庫,然后我可以創建一個新的MailAddress(stringOfEmail); 在對象上設置值時?

或者我最好只將電子郵件的數據類型更改為字符串並在其他地方處理驗證?

一種可能的方法是將MailAddress屬性映射到數據庫,但具有第二個屬性。 就像是:

public class Person
{
    public string EmailString { get; set; }

    [NotMapped]
    public MailAddress Email
    {
        get { return new MailAddress(this.EmailString); }
        set { this.EmailString = value.ToString(); }
    }
}

有關[NotMapped]屬性的信息,請參見此處: 如何不首先保留屬性EF4代碼?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM