Frage

Ich versuche, ADO.NET -Datendienste zu verwenden, um meine Datenbank zu aktualisieren.

Tische:

  • Person (pk personid; fk entityrootid)
  • EntityRoot (PK EntityRootid, FK EntityTypeid)
  • EntityTypes (PK EntityTyped)

Ich versuche, ein EntityRoot zu erstellen (unglücklicher Name, da er mit der Entität von Entity Framework verwechselt wird. EntityRoot ist in meiner Domäne) und füge es der Datenbank hinzu:

var entRoot = EntityRoot.CreateEntityRoot(
    0, "Lou", DateTime.Now, "Lou", DateTime.Now);
var entityType = 
   (from type in myContext.EntityTypeSet
    where (type.Description == "Person")
    select type).FirstOrDefault(); // this works fine and returns the entityType I’m looking for

entRoot.EntityType = entityType;
myContext.AddToEntityRootSet(entRoot); 

// with the line below I get a runtime error:
//  “AddLink and DeleteLink methods only work when the sourceProperty is a collection.”
//myContext.AddLink(entRoot, "EntityType", entityType); 

// without the line above I get an error from the save:
//  “Entities in 'MyEntities.EntityRootSet' participate in the 'FK_EntityRoots_EntityTypeId_Lookup_EntityTypes' 
//    relationship. 0 related 'EntityTypes' were found. 1 'EntityTypes' is expected.”
myContext.BeginSaveChanges(SaveChangesOptions.Batch,
                      new AsyncCallback(OnSaveAllComplete),
                      null); 

Wie kann ich einen Verweis auf das Feld Entroot.EntityTypeid hinzufügen?

Vielen Dank für einen Einblick in das.

War es hilfreich?

Lösung

Ich denke, Sie sollten bei diesem Fall SetLink anstelle von Addlink verwenden, da die von Ihnen angegebene Eigenschaft von Entity zu EntityType (eine Entität hat eine Entitätstyp).

Dies ist im Grunde genommen die Fehlermeldung mit Ihnen (Addlink funktioniert nur für Sammlungseigenschaften, wie die umgekehrte Eigenschaft vom Typ zu Entität oder für viele zu vielen Beziehungen).

Andere Tipps

Ist es nur ein Tippfehler in Ihrer Frage oder sollte es sein

myContext.AddLink(entRoot, "EntityTypes", entityType); 

Zu Beginn Ihrer Frage schreiben Sie "EntityTypes" (mit "S").

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top