Hinzufügen einer benutzerdefinierten Eigenschaft zur clientseitigen Entitätsklasse

entity-framework

Frage

Ich muss einer Entity Framework-Klasse eine benutzerdefinierte Eigenschaft hinzufügen. Wenn ich dies jedoch tue, erhalte ich die Angabe "Der für XXX angegebene Eigenschaftsname XXX ist ungültig." Error. Gibt es ein Attribut, das ich der Eigenschaft geben kann, damit es ignoriert wird und keinem Objekt zugeordnet wird?

Bearbeiten: Wenn ich, wie in Martin's Beispiel unten, eine benutzerdefinierte Eigenschaft hinzufüge, wird der obige Fehler beim Aufruf von SaveChanges durch den folgenden Code ausgelöst.

MyEntities svc = new MyEntities(url);
MyEntity ent = new MyEntity();
ent.MyField = "Hello, world";
svc.AddMyEntity(ent);
svc.SaveChanges();

Akzeptierte Antwort

Hier ist die Antwort: http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataservices/thread/b7a9e01d-c5c2-4478-8f01-00f7f6e0f75f

Bearbeiten: Ein besserer Link beschreibt die endgültige kompakte Antwort zum Hinzufügen eines Attributs, um die Serialisierung der Entität beim Senden an den Dienst zu verhindern.


Beliebte Antwort

Sie können eine Eigenschaft im Code hinzufügen:

public partial class MyEntity {
  public String MyCustomProperty {
    get;
    set;
  }
}

Das Entity Framework generiert Teilklassen, mit denen Sie die generierte Klasse anpassen können.

Um Ihren Code zu kommentieren, sollte er meiner Meinung nach in etwa folgendermaßen geändert werden:

MyEntities svc = new MyEntities(url);
// Create MyEntity using the factory method.
MyEntity ent = MyEntities.CreateMyEntity(...);
ent.MyField = "Hello, world";
svc.AddMyEntity(ent);
svc.SaveChanges();

Dadurch wird sichergestellt, dass Ihre Entität ordnungsgemäß initialisiert wird.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum