Pregunta

Estoy encontrando un error extraño cuando uso linq-to-sql con los servicios de datos de ado.net. Tengo una aplicación simple de Silverlight que se conecta a una base de datos remota. Primero agregué la clase linq-to-sql y arrastré una tabla al diseñador. Luego agregué un servicio de datos ADO.NET, actualicé la referencia DataService para que apunte al contexto de datos L2S.

Compilado sin problemas.

Cuando abro el servicio en IE inmediatamente me aparece un error, así que agrego el siguiente atributo al servicio de datos:

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]

Esto muestra el mensaje de error detallado:

  

El mensaje de excepción es 'En el tipo de contexto de datos' DataClasses1DataContext ', hay una propiedad IQueryable superior' table1 'cuyo tipo de elemento no es un tipo de entidad. Asegúrese de que la propiedad IQueryable sea de tipo entidad o especifique el atributo IgnoreProperties en el tipo de contexto de datos para ignorar esta propiedad

¡esto sucede con cualquier tabla de base de datos que use en el diseñador L2S!

¿Qué es este error y por qué lo estoy recibiendo?

¿Fue útil?

Solución

Tendrá que decorar sus clases con el atributo DataServiceKey.

Más detalles en el blog de Marc aquí , y un blog de MSDN here (este último habla de muchas a muchas relaciones, pero cubre el atributo DatServiceKey).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top