2009-06-15 6 views
6

Ich habe ein Unternehmen mit Feldern, dieOffenlegen von Enum getippt Eigenschaften für Entity Framework Entitäten Felder in ADO.NET Data Service Client-Kontext

int eingegeben werden, und ich möchte diese Felder als Eigenschaften ausgesetzt, die erhalten und Aufzählungstyp Werte empfangen für stark typisierte Arbeiten.

Also habe ich eine neue Teilklasse für die Entität erstellt und die beiden Eigenschaften hinzugefügt.

wenn ich versuche, eine neue Instanz des TestEntity zu erstellen und sie in den Kontext hinzufügen, und rufen Sie die Änderungen speichern ich die folgende Ausnahme erhalten:

ist ein Fehler aufgetreten, während der Verarbeitung dieser Anforderung. bei System.Data.Services.Client.DataServiceContext.SaveAsyncResult.HandleBatchResponse() bei System.Data.Services.Client.DataServiceContext.SaveAsyncResult.EndRequest() bei System.Data.Services.Client.DataServiceContext.SaveChanges (SaveChangesOptions Optionen) bei System.Data.Services.Client.DataServiceContext.SaveChanges()

die innere Ausnahme ist:

System.InvalidOperationException: der Typ 'enum1' hat keine einstellbaren Eigenschaften. bei System.Data.Services.Client.ClientType..ctor (Typ, String typeName, Boolean skipSetTableCheck) bei System.Data.Services.Client.ClientType.Create (Typ, Boolean expectModelType) bei System.Data. Services.Client.DataServiceContext.WriteContentProperties (XmlWriter-Schreiber, ClientType-Typ, Objektressource) bei System.Data.Services.Client.DataServiceContext.CreateRequestData (ResourceBox-Feld, Boolescher Zeilenumbruch) bei System.Data.Services.Client.DataServiceContext.SaveAsyncResult .CreateChangeData (Int32 Index, Boolean Neue-Zeile) bei System.Data.Services.Client.DataServiceContext.SaveAsyncResult.BeginNextChange (Boolean replaceOnUpdate)

, also habe ich versucht, die Enum-Eigenschaften als Klasseneigenschaften zu reflektieren. Wie kann ich den Kontext ignorieren diese Eigenschaften, wenn es versucht, über sie nachzudenken.

Ich verwende VS 2008 Team Suite SP1, SQL Server 2008,. NET 3.5 SP1.

Hilfe.

der Teilklassencode:

public partial class TestEntity 
{  
    public enum1 Field1 
    { 
     get 
     { 
      return (enum1)field1; 
     } 
     set 
     { 
      field1 = (Int16)value; 
     } 
    } 

    public enum2 Field2 
    { 
     get 
     { 
      return (enum2)field2; 
     } 
     set 
     { 
      field2 = (Int16)value; 
     } 
    } 
}  
+0

Haben Sie irgendwelche Arbeit gefunden? – Ram

Antwort

2

Ich glaube nicht, dass Sie können. In ADO.Net Data Services können Sie keine Enums auf Ihren Proxy-Objekten haben, die an den Server gesendet werden. Versuchen Sie, Ihr Objekt zu ändern, um stattdessen ein int (oder ein kurzes) zu verwenden.