我有一個應用程序使用Linq to SQL來獲取數據並將數據存儲到數據庫。我有一個電話號碼字段。我試圖只將數字一直存儲爲數字,而不是其他數字。要做到這一點,我有兩個我已經添加到字符串的擴展方法。 ToPhoneFormat()
按照用戶需要格式化手機數字,如「(xxx)xxx-xxxx」或「xxx.xxx.xxxx」。 ToPhoneStorage()
刪除所有格式並只保存數字中用於數據庫的數字。Linq to SQL存儲屬性問題
下面是與LINQ的使用SQL代碼示例:
private string homePhone;
[Column(CanBeNull = true, DbType = "nvarchar(25)", Name = "HOME_PHONE_NUM", Storage = "homePhone")]
[Display(Name = "Home Phone")]
public string HomePhone {
get { return homePhone.ToPhoneFormat(); }
set { homePhone = value.ToPhoneStorage(); }
}
當我提交使用DataContext的變化,LINQ的事實上確實來電來訪,吸氣,和格式化手機被髮送回數據庫。我不正確理解Storage
屬性嗎?似乎它應該像這樣正確工作。
當然,我可以創建兩個字段「PhoneDigits」和「PhoneFormatted」,並且只將列屬性提供給「Phone」字段。所以我知道有一個工作。但是如果不這樣做,Storage
屬性會做什麼?
我決定創建兩個屬性 - HomePhone和HomePhoneFormatted。 HomePhone直接映射到數據庫字段。 HomePhoneFormatted獲取並設置HomePhone字段,但應用格式化或刪除它,並且不與數據庫相關聯。然後我在數據庫上運行SQL命令以對現有數據進行格式化。謝謝(你的)信息。 – Paul