用于从电话号码字段中删除非号码的C#EF5数据库首个数据批注
我正在使用EF5数据库第一个模型作为LOB应用程序。我首先开始编写代码,但在正确处理多对多关系时遇到了一些问题,所以我使用的是我熟悉的东西 在客户电话号码上,我让他们使用POCO类中的格式化程序,将所有非数字字符剥离为数据输入的一部分 我有一个用于数据注释的buddy类,但它不能正确地进行格式设置。如果我需要作为存储库的一部分来做,我会在那里做,但我认为作为数据访问的一部分来做可能会更好。我正在使用电话号码库检查有效性,但只想将号码存储在数据库中,不需要任何额外字符用于从电话号码字段中删除非号码的C#EF5数据库首个数据批注,c#,entity-framework,C#,Entity Framework,我正在使用EF5数据库第一个模型作为LOB应用程序。我首先开始编写代码,但在正确处理多对多关系时遇到了一些问题,所以我使用的是我熟悉的东西 在客户电话号码上,我让他们使用POCO类中的格式化程序,将所有非数字字符剥离为数据输入的一部分 我有一个用于数据注释的buddy类,但它不能正确地进行格式设置。如果我需要作为存储库的一部分来做,我会在那里做,但我认为作为数据访问的一部分来做可能会更好。我正在使用电话号码库检查有效性,但只想将号码存储在数据库中,不需要任何额外字符 [MetadataType(
[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]", "");
}
}
}
数据属性正在工作,但格式实际上不起作用,所以我想知道是否有人有更好的方法来做到这一点?谢谢 如果我理解正确,您只是在寻找一种有效的方法来去除非数字字符?如果是这样的话,我一直使用LINQ来实现这一点,并且效果非常好:
phone == null ? string.Empty : new string((phone).Where(c => char.IsNumber(c)).ToArray());