Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[WCF] LINQ classes serializeren

Pagina: 1
Acties:

  • Carharttguy
  • Registratie: Juli 2010
  • Laatst online: 04-07 23:09
Dag iedereen.

Mijn titel is een beetje fout, ik bedoelde Entity Framework classes serializeren (weet niet hoe ik een titel moet aanpassen.)

We proberen met WCF custom objecten door te sturen. Het probleem is dat die objecten niet zelf gemaakt zijn, maar gegenereerd zijn door het Entity Framework, en dus 'speciale' datatypes bevatten (niet de gewone ints en strings). Na wat opzoeken lijkt het erop dat deze klasses geserializeerd moeten worden. We weten dat niet echt zeker, en ook het toepassen is heel onduidelijk voor ons.

Het gegeven is dus dat we een 'Wallet' klasse hebben, gegeneerd door het Entity Framework uit onze databank, en we deze Wallet klasse willen doorgeven via WCF. Ik had dat dus zo gedaan in onze interface:

code:
1
2
3
4
5
6
7
8
 [DataContract]
    public partial class Wallet
    {
        [DataMember]
        public int getwalletID { get { return walletID; } }
        [DataMember]
        public string getname { get { return name; } }
    }


Echter werkt dit niet, want de client krijgt altijd een fout:
An error occurred while receiving the HTTP response to http://localhost:8860/ComplementaryCoins.svc. This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.
Echter is er in de server logs niets te vinden, want die blijft gewoon werken.

Heeft iemand ervaring met de combinatie van WCF/Entity Framework en het doorsturen van objecten?

Dank bij voorbaat.

[ Voor 6% gewijzigd door Carharttguy op 07-03-2013 09:55 ]


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 20-11 13:38

sopsop

[v] [;,,;] [v]

Die combinatie lijkt me toch niet iets dat problematisch zou moeten zijn. Er zijn ook genoeg artikelen over te vinden, bijvoorbeeld: http://www.codeproject.co...ice-with-Entity-Framework.

  • king_charles
  • Registratie: Maart 2008
  • Laatst online: 15-08-2023
Ik zou toch adviseren om gewoon DTO's te maken en die via WCF te exposen. Ergens binnen je service kopieer je dan de entity waarden naar het DTO en probleem opgelost.
Dit lijken ze ook in het bovengenoemde artikel te doen.

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 16:52

Haan

dotnetter

Mijn ervaring is ook dat EF classes direct in een WCF service gebruiken voor allerlei problemen zorgt.

Kater? Eerst water, de rest komt later


  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 19:04

Sebazzz

3dp

king_charles schreef op donderdag 07 maart 2013 @ 13:10:
Ik zou toch adviseren om gewoon DTO's te maken en die via WCF te exposen.
Je kan dan ook nog een library zoals AutoMapper gebruiken om kopieren te regelen.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Of je gaat voor EF met POCO's, of je gaat voor een tussenlaag in de vorm van DTO's. Anders ga je nat.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 19:04

Sebazzz

3dp

DTO's kan je denk ik bijna niet omheen. Je wilt zelden dat er een complete object graph geserialized wordt, aangenomen dat je relaties in je database hebt.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • GrooV
  • Registratie: September 2004
  • Laatst online: 19-11 00:16
Ik zou Code First (poco) gaan werken ipv met een EDMX. Komt omdat je met een EDMX een partial class hebt die een hele hoop zut mee wil serialiseren

[ Voor 7% gewijzigd door GrooV op 07-03-2013 15:20 ]


  • Carharttguy
  • Registratie: Juli 2010
  • Laatst online: 04-07 23:09
Ik vreesde er zowel wat voor ja, ik was al begonnen met DTO's, denk dat ik het inderdaad met AutoMapper ga moeten doen (had ik nog nooit gebruikt), want nu had ik gewoon een eigen klasse geschreven die het kopiëren regelde, en dat was wel beetje lame.

Thanks voor de oplossing folks!

  • GrooV
  • Registratie: September 2004
  • Laatst online: 19-11 00:16
Carharttguy schreef op donderdag 07 maart 2013 @ 15:20:
Ik vreesde er zowel wat voor ja, ik was al begonnen met DTO's, denk dat ik het inderdaad met AutoMapper ga moeten doen (had ik nog nooit gebruikt), want nu had ik gewoon een eigen klasse geschreven die het kopiëren regelde, en dat was wel beetje lame.

Thanks voor de oplossing folks!
Waarom niet gewoon switchen naar Code First? Werkt echt 100x beter en geen gezeik dat je edmx corrupt raakt ed

  • Carharttguy
  • Registratie: Juli 2010
  • Laatst online: 04-07 23:09
GrooV schreef op donderdag 07 maart 2013 @ 15:21:
[...]

Waarom niet gewoon switchen naar Code First? Werkt echt 100x beter en geen gezeik dat je edmx corrupt raakt ed
Sorry ik was vergeten te antwoorden op jouw post. Omdat we een project in schoolverband doen, moeten we een beetje vasthouden aan de principes die we in de lessen hebben gezien. :)
Ook al vind ik het wel interessant, want ik had er nog nooit over gehoord, zeker eens opzoeken.
Pagina: 1