2009-06-15 14 views
6

Tengo una entidad con campos que se escriben intExponer propiedades de enumeración escrito para los campos entidades marco entidad de contexto de cliente de servicio de datos ADO.NET

y quiero expuestos esos campos como propiedades que obtienen y recibir valores de tipo de enumeración para trabajar fuertemente tipado.

así que he creado una nueva clase parcial para la entidad y he añadido las dos propiedades.

cuando intento crear una nueva instancia de la TestEntity y añadirlo al contexto, y llamar a guardar los cambios me sale el siguiente excepción:

Se ha producido un error al procesar esta solicitud. en System.Data.Services.Client.DataServiceContext.SaveAsyncResult.HandleBatchResponse() en System.Data.Services.Client.DataServiceContext.SaveAsyncResult.EndRequest() en System.Data.Services.Client.DataServiceContext.SaveChanges (opciones SaveChangesOptions) en System.Data.Services.Client.DataServiceContext.SaveChanges()

la excepción interna es:

System.InvalidOperationException: el tipo 'Enum1' no tiene propiedades configurables. en System.Data.Services.Client.ClientType..ctor (Type type, String typeName, Boolean skipSettableCheck) en System.Data.Services.Client.ClientType.Create (tipo de tipo, booleano expectModelType) en System.Data. Services.Client.DataServiceContext.WriteContentProperties (escritor XmlWriter, tipo ClientType, recurso de objeto) en System.Data.Services.Client.DataServiceContext.CreateRequestData (cuadro ResourceBox, línea nueva booleana) en System.Data.Services.Client.DataServiceContext.SaveAsyncResult .CreateChangeData (índice Int32, nueva línea Boolean) en System.Data.Services.Client.DataServiceContext.SaveAsyncResult.BeginNextChange (Boolean replaceOnUpdate)

así que pensé que intenta reflejar las propiedades enum como propiedades de clases. ¿Cómo puedo hacer que el contexto ignore esas propiedades cuando intenta reflejarlas?

estoy usando VS 2008 equipo suite sp1, SQL Server 2008, .Net 3.5 Sp1.

Ayuda.

el código de clase parcial:

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

¿Encontró algún trabajo para esto? – Ram

Respuesta

2

no creo que pueda. En ADO.Net Data Services, no puede tener enumeraciones en sus objetos proxy que se envían al servidor. Intente cambiar su objeto para usar un int (o short) en su lugar.

Cuestiones relacionadas