2009-06-15 13 views
6

mam podmiot z pól, które są wpisane intnarażając enum wpisany właściwości dla podmiotów Entity Framework pól w ADO.NET Data Service kontekście klienta

i chcę do narażonych tych pól jako właściwości, które uzyskać i odbierać wartości typu enum do pracy mocno wpisanej.

więc utworzyłem nową klasę cząstkową dla encji i dodano dwie właściwości.

gdy próbuję utworzyć nową instancję TestEntity i dodać go do kontekstu, i nazywają zapisać zmiany otrzymuję następujący wyjątek:

błąd podczas przetwarzania żądania wystąpił. na System.Data.Services.Client.DataServiceContext.SaveAsyncResult.HandleBatchResponse() w System.Data.Services.Client.DataServiceContext.SaveAsyncResult.EndRequest() w System.Data.Services.Client.DataServiceContext.SaveChanges (SaveChangesOptions opcje) w System.Data.Services.Client.DataServiceContext.SaveChanges()

wewnętrzna wyjątek:

System.InvalidOperationException: Typ 'enum1' ma właściwości ustawialnych. at System.Data.Services.Client.ClientType..ctor (Typ type, Nazwa typu łańcucha, Boolean skipSettableCheck) at System.Data.Services.Client.ClientType.Create (Typ typu, Boolean expectModelType) at System.Data. Services.Client.DataServiceContext.WriteContentProperties (XmlWriter writer, typ ClientType, zasób obiektu) w System.Data.Services.Client.DataServiceContext.CreateRequestData (pole ResourceBox, Boolean newline) w System.Data.Services.Client.DataServiceContext.SaveAsyncResult .CreateChangeData (wskaźnik Int32, logiczna nowalinia) w System.Data.Services.Client.DataServiceContext.SaveAsyncResult.BeginNextChange (logiczna replaceOnUpdate)

, więc pomyślałem, że próbuje odzwierciedlić właściwości enum jako właściwości klas. Jak mogę uczynić kontekst ignorować te właściwości, gdy próbuje je zastanowić.

Używam zestawu zespołów VS 2008 sp1, SQL Server 2008, .Net 3.5 Sp1.

Pomoc.

częściowy kod klasy:

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

Czy znalazłeś jakieś obejście tego? – Ram

Odpowiedz

2

Nie sądzę, że można. W ADO.Net Data Services nie można uzyskać wyliczeń na obiektach proxy, które są wysyłane na serwer. Spróbuj zmienić obiekt, aby zamiast niego użyć znaku int (lub krótkiego).

Powiązane problemy