#.net #wcf #iphone-sdk-3.0 #datacontract
#.net #wcf #iphone-sdk-3.0 #datacontract
Вопрос:
У меня проблема с контрактом данных в моем приложении. В моей базе данных есть 5 таблиц, и мне потребовались 3 из них в качестве типа данных. Итак, я создал класс и очистил всю необходимую таблицу как класс в [Datacontract]
.
Вот код
[DataContract]
public class CustomerDetail
{
[DataMember]
public int CustomerID { get; set; }
[DataMember]
public string CustomerName { get; set; }
[DataMember]
public long ContactNumber { get; set; }
[DataMember]
public string Email { get; set; }
[DataMember]
public string Address { get; set; }
[DataMember]
public string Password { get; set; }
}
[DataContract(Name = "CustomerDetail")]
public class CustomerAccount
{
[DataMember]
public int AccountId { get; set; }
[DataMember ]
public short PinNo { get; set; }
[DataMember (Name="CustomerID")]
public int CustomerID { get; set; }
[DataMember]
public int AccountTypeId { get; set; }
[DataMember]
public float Amount { get; set; }
}
[DataContract(Name = "CustomerDetail")]
public class TransactionDetail
{
[DataMember]
public int TransactionId { get; set; }
[DataMember (Name ="CustomerID")]
public int CustomerId { get; set; }
[DataMember]
public int AccountId { get; set; }
[DataMember]
public int TransactiopnTypeId { get; set; }
[DataMember]
public float AmountAfterTransaction { get; set; }
}
я тоже использовал атрибуты, но я получаю исключение недопустимого контракта данных..
пожалуйста, помогите мне, что я должен сделать, чтобы решить это.
Комментарии:
1. Какое именно исключение вы получаете?
Ответ №1:
Я думаю, это потому, что вы используете параметр Name в своих контрактах на данные. Похоже, вы вырезали и вставили эти атрибуты.
Просто удалите все параметры «Name» из ваших атрибутов DataContract и DataMember. Они не нужны для того, что вы делаете, и вызывают у вас проблемы.
Комментарии:
1. Я попробовал это без какого-либо атрибута, но возникло то же исключение. Затем я погуглил это, но не нашел подходящего способа ее решения.
Ответ №2:
Проблема в том, что вы используете одно и то же имя «CustomerDetails» для нескольких объектов. Попробуйте использовать этот код вместо вашего кода (Примечание: я только что удалил два атрибута Name=CustomerDetail).
[DataContract]
public class CustomerDetail
{
[DataMember]
public int CustomerID { get; set; }
[DataMember]
public string CustomerName { get; set; }
[DataMember]
public long ContactNumber { get; set; }
[DataMember]
public string Email { get; set; }
[DataMember]
public string Address { get; set; }
[DataMember]
public string Password { get; set; }
}
[DataContract]
public class CustomerAccount
{
[DataMember]
public int AccountId { get; set; }
[DataMember]
public short PinNo { get; set; }
[DataMember(Name = "CustomerID")]
public int CustomerID { get; set; }
[DataMember]
public int AccountTypeId { get; set; }
[DataMember]
public float Amount { get; set; }
}
[DataContract]
public class TransactionDetail
{
[DataMember]
public int TransactionId { get; set; }
[DataMember(Name = "CustomerID")]
public int CustomerId { get; set; }
[DataMember]
public int AccountId { get; set; }
[DataMember]
public int TransactiopnTypeId { get; set; }
[DataMember]
public float AmountAfterTransaction { get; set; }
}