2010-07-07 7 views
0

J'ai un problème concernant le contrat de données dans mon application. J'ai 5 tables dans ma base de données et j'ai besoin de 3 d'entre elles comme type de données. J'ai donc créé une classe et a décliné toute la table requise comme classe sous [Datacontract].problème de contrat de données wcf

est ici le code

[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; } 
} 

i hv utilisé les attributs aussi, mais je reçois exception du contrat de données non valide .. plz me aider à ce que je devrais résoudre ce problème.

+0

Quelle est l'exception exacte que vous recevez? – CkH

Répondre

1

Je pense que c'est parce que vous utilisez le paramètre Name dans vos contrats de données. Vous semblez avoir coupé et collé ces attributs.

Supprimez simplement tous les paramètres "Name" de vos attributs DataContract et DataMember. Ils ne sont pas nécessaires pour ce que vous faites et vous causent des problèmes.

+0

Je l'ai essayé sans aucun attribut, mais la même exception s'est produite. Ensuite, je l'ai googlé mais je n'ai pas obtenu le moyen approprié de le résoudre. – user385415

1

Le problème est que vous utilisez le même nom "CustomerDetails" pour les objets mulitple. Essayez d'utiliser ce code à la place de votre code (Remarque: je viens de supprimer les deux attributs 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; } 
    }