2010-07-07 86 views
0

我的应用程序中有关于数据合同的问题。 我有5个表在我的数据库中,我需要其中3作为数据类型。所以我创建了一个班级,并根据[Datacontract]将所有必需的表格降级为班级。数据合同问题wcf

这是我HV使用的代码

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

属性太多,但我得到的数据无效合同例外.. plz帮助我出去我应该解决这个问题。

+0

你收到的确切例外是什么? – CkH 2010-07-07 13:20:02

回答

1

我想这是因为您在Data Contracts中使用了Name参数。您似乎已经剪切并粘贴了这些属性。

只需从DataContract和DataMember属性中删除所有“名称”参数即可。他们对于你正在做的事情没有必要,并且正在给你带来问题。

+0

我尝试了它没有任何属性,但同样的异常发生。然后我google了它,但没有得到适当的方式来解决它。 – user385415 2010-07-07 11:36:28

1

问题是,您正在为多个对象使用相同的名称“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; } 
    }