我正在为 LOB 应用程序使用 EF5 数据库优先模型。我从 Code First 开始,但在使多对多关系正常工作时遇到问题,所以我使用的是我熟悉的。
在客户电话号码上,我让他们在其中使用 POCO 类中的格式化程序将所有非数字字符作为数据输入的一部分剥离。
我有一个用于数据注释的伙伴类,但它没有正确格式化。如果我需要将其作为存储库的一部分进行,我会在那里进行,但我认为将其作为数据访问的一部分可能会更好。我正在使用电话号码库来检查有效性,但只想将号码存储在数据库中而没有任何额外的字符。
[MetadataType(typeof(CustomerMetadata))]
public partial class Customer
{
public class CustomerMetadata
{
private string _phone;
[PhoneNumber]
[DataType(DataType.PhoneNumber)]
public string Phone { get { return _phone; } set { _phone = FormatPhone(value); } }
private string FormatPhone(string phone = "")
{
return phone == null ? "" : Regex.Replace(phone, "[^0-9]", "");
}
}
}
数据属性正在工作,但格式实际上并没有工作,所以我想知道是否有人有更好的方法来做到这一点?谢谢!