0

有个问题。我收到此错误,我知道这是因为 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;
    }

任何有关解决方案的建议将不胜感激!谢谢 :)

4

1 回答 1

0

有一个解决方案,尽管这对我来说更愚蠢。

我没有意识到我的 .EDMX 实体图没有使用数据库中的新值进行更新(我必须手动删除实体并重新添加它以强制更改)。

重新编译和更新服务参考后,它工作了。

于 2013-08-12T08:20:56.623 回答