有个问题。我收到此错误,我知道这是因为 int32 的数量限制为 2147483647。但我不知道为什么当有问题的值(11 位电话号码)定义为时出现此错误我们的 SQL 数据库中的一个字符串,我们的 Web 服务中的一个字符串和我们的 Web 应用程序中的一个字符串。
我认为这与服务通过连接序列化和反序列化数据的方式有关,但我想知道是否有办法强制 Number 在反序列化发生时仅使用字符串而不是解析它。甚至可以将其解析为 int64。
这是错误异常。我删除了命名空间和服务名称。导致问题的是属性 Number。
反序列化类型为“.ClientPhone []”的对象时出错。无法将值“07721545554”解析为“Int32”类型。”
这是服务和服务接口的代码。
[DataContract]
public class ClientPhone
{
[DataMember]
public int? ClientNumberID { get; set; }
[DataMember]
public int? RefID { get; set; }
[DataMember]
public string Number { get; set; }
[DataMember]
public string NumberType { get; set; }
[DataMember]
public bool? PrimaryNumber { get; set; }
}
public partial class ClientNumberEntity
{
public int ClientNumbersID { get; set; }
public Nullable<int> RefID { get; set; }
public string ClientNumberType { get; set; }
public string ClientNumber { get; set; }
public Nullable<bool> PrimaryNumber { get; set; }
public virtual ClientDataEntity ClientData { get; set; }
}
public List<ClientPhone> GetClientsPhoneByReference(int _reference)
{
OurDatabaseEntities context = new OurDatabaseEntities();
var phoneEntity = (from c in context.ClientNumberEntities
where c.RefID == _reference
select c).ToList();
if (phoneEntity != null)
{
return TranslateClientPhoneEntityToPhoneNumberList(phoneEntity);
}
else
throw new Exception("Unable to get phone data");
}
private List<ClientPhone> TranslateClientPhoneEntityToPhoneNumberList(List<ClientNumberEntity> numberEntities)
{
List<ClientPhone> phoneList = new List<ClientPhone>();
foreach (ClientNumberEntity numberEntity in numberEntities)
{
ClientPhone phoneListMember = new ClientPhone();
phoneListMember.ClientNumberID = numberEntity.ClientNumbersID;
phoneListMember.RefID = numberEntity.RefID;
phoneListMember.Number = numberEntity.ClientNumber;
phoneListMember.NumberType = numberEntity.ClientNumberType;
phoneListMember.PrimaryNumber = numberEntity.PrimaryNumber;
phoneList.Add(phoneListMember);
}
return phoneList;
}
任何有关解决方案的建议将不胜感激!谢谢 :)