DotNetCampania
Il primo portale campano dedicato allo sviluppo software con tecnologie Microsoft

DataService. Probelma relazioni.

rated by 0 users
Risposto This post has 1 verified answer | 1 Reply | 1 Follower

Top 25 Partecipanti
6 Post
Punteggio 110
Enso posted on 8 mar 2010 11:04

Salve amici,

vi scrivo perchè sono ormai un paio di giorni che ho problemi nell'uso degli ADO.NET DataService, e più nello specifico ho problemi nel settare le relazioni tra entità.

Vi posto il codice :

 

try
{

ProvaServiceReference.Prova_dsEntities dc =
new Console.ProvaServiceReference.Prova_dsEntities(new Uri("http://localhost:62352/WebSite/Prova_dsService.svc/"));

ProvaServiceReference.PercorsoPrincipale p =
ProvaServiceReference.PercorsoPrincipale.CreatePercorsoPrincipale(default(int));

p.Nome = "Percorso di prova1";

dc.AddToPercorsiPrincipali(p);

for (int i = 1; i < 4; i++)
{

ProvaServiceReference.Tratta t =
ProvaServiceReference.Tratta.CreateTratta(default(int));

t.Nome = "Tratta di prova" + i.ToString();

dc.AddToTratte(t);

dc.AddLink(p, "TrattePercorso", t);
}

dc.SaveChanges(SaveChangesOptions.Batch);
}

catch (Exception ex)
{ }

 

La chiamata a SaveChanges produce la seguente eccezione:

MESSAGE:  "Errore durante l'elaborazione della richiesta."

INNEREXCEPTION :  "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\r\n<error xmlns=\"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata\">\r\n  <code></code>\r\n  <message xml:lang=\"it-IT\">Errore durante l'elaborazione della richiesta.</message>\r\n</error>\r\n"

Da notare che se non utilizzo addLink per settare le relazioni, SaveChanges persiste le nuove entità create su db (ovviamente senza però le relazioni!)

Spero nel vostro aiuto!

  • | Punteggio Post: 5

Risposto Verified Answer

Top 25 Partecipanti
6 Post
Punteggio 110
Verified by Enso

Ok, svelato l'arcano!!

In pratica il codice è giusto, quello che non andava bene era l'EntityModel (Prova_dsEntities) creato a partire dal db. Infatti Entity Framework, tramite il suo wizard, mappa le tabelle senza PrimaryKey come entità in sola lettura, e indovinate un pò com'era la mia tabella associativa sul db?!?  Embarrassed

Quindi ho reso le due chiavi esterne della tabella associativa chiave primaria, aggiornato l'edmx e tutto funziona perfettamente!! Big Smile

Beh, meglio tardi che mai...Stick out tongue  Grazie a chiunque si fosse interessato!

Enso

  • | Punteggio Post: 25
Pagina 1 di 1 (2 elementi) | RSS

Associazione Culturale DotNetCampania - C.F.: 95127870632

Powered by Community Server (Commercial Edition), by Telligent Systems