Reputation: 2143
I need to create a web-service that will integrate information from SAP within my organization. I have an existing application with a database structure. SAP will use the web-service to store values into the relevant tables/columns in the database.
For this, I need to provide the SAP team with an Xml schema that will be used to pass the data. Now, I do not know a lot about xml. What I did is I created Dto's based on the Entity Framework classes of all the relavent tables. This includes 8 different classes:
RFQ is the base class
and it can contain either an RFQGoods or an RFQServices.
Next, I attempted using the xsd.exe tool to generate a schema, but received this result:
Error: There was an error processing 'RfqService.dll'.
- There was an error reflecting type 'RfqService.DataTransferObjects.RfqDto'.
- Cannot serialize member 'RfqService.DataTransferObjects.RfqDto.RFQGoods' of
type 'System.Collections.Generic.ICollection1[[RfqService.DataTransferObjects.RfqGoodDto, RfqService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]', see inner exception for more details. - Cannot serialize member RfqService.DataTransferObjects.RfqDto.RFQGoods of type System.Collections.Generic.ICollection
1[[RfqService.DataTransferObjects.RfqGoodDto, RfqService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] because it is an interface.
I think what I need is the correct xml attributes
for the classes and each of their parameters
, but I do not know what attributes I need to add to make this work and haven't been able to find out. Below is the RfqDto class:
[DataContract]
public class RfqDto
{
[DataMember]
public int RfqId { get; set; }
[DataMember]
public bool IsAbove30k { get; set; }
[DataMember]
public string ReferenceNumber { get; set; }
[DataMember]
public string ContactPersonName { get; set; }
[DataMember]
public string ContactPersonTelephoneNumber { get; set; }
[DataMember]
public string ContactPersonCellPhone { get; set; }
[DataMember]
public string BuyerName { get; set; }
[DataMember]
public string BuyerTelephoneNumber { get; set; }
[DataMember]
public string BuyerEmailAddress { get; set; }
[DataMember]
public Nullable<int> QuotationBoxNumber { get; set; }
[DataMember]
public Nullable<int> FloorNumber { get; set; }
[DataMember]
public virtual ProcurementItemDto ProcurementItem { get; set; }
[DataMember]
public virtual ICollection<RfqGoodDto> RfqGoods { get; set; }
[DataMember]
public virtual ICollection<RfqServiceDto> RfqServices { get; set; }
}
Upvotes: 0
Views: 578
Reputation: 5189
Try changing your ICollection<T>
members to List<T>
. The error you are getting is basically telling you that you can not serialize interfaces.
Upvotes: 1
Reputation: 7591
You can use EntityFrameWork
for doing same.you have to add one .edmx
file into your application and then you have to configure database and in Model you will find the schema of your database
more informatin you can refer link EF
Upvotes: 0