Tengo un servicio web WCF/REST que estoy considerando utilizar Linq en SQL para devolver información de la base de datos.Devolver conjuntos de datos de LINQ a SQL en un servicio REST/WCF
Es bastante fácil de hacer consultas básicas contra las tablas y filas volver, por ejemplo:
[WebGet(UriTemplate = "")]
public List<User> GetUsers()
{
List<User> ret = new List<User>(); ;
using (MyDataContext context = new MyDataContext())
{
var userResults = from u in context.Users select u;
ret = userResults.ToList<User>();
}
return ret;
}
Pero lo que si quiero devolver datos de varias tablas o que no coincide exactamente con el esquema de la tabla ? No puedo encontrar la manera de devolver los resultados de esta consulta, por ejemplo:
var userResults = from u in context.Users
select new { u.userID, u.userName, u.userType,
u.Person.personFirstname, u.Person.personLastname };
Obviamente el conjunto de filas resultante no se adhiere al esquema de "Usuario", así que no puedo acaba de convertir en una lista de objetos de usuario.
Intenté hacer una nueva entidad en mi modelo de objetos que estuviera relacionada con el conjunto de resultados, pero no desea hacer la conversión.
¿Qué me estoy perdiendo?
Editar: pregunta relacionada: ¿qué pasa con los resultados devueltos de los procedimientos almacenados? Mismo problema, ¿cuál es la mejor manera de empaquetarlos para que regresen a través del servicio?
Ese es el Entity Framework, no lineal Linq To SQL. Estoy tratando de evitar el uso de Entity Framework si es posible. – BDW
Oh, ya veo. Puede crear una clase concreta en lugar de una anónima como sugirió m4tt1mus. –
PERO ... digamos que sí uso Entity Framework. Sé cómo los tipos complejos funcionan con procs almacenados, eso no es un problema. ¿Cómo se correlaciona la consulta de linq a sql que tengo arriba con el tipo complejo? Nada de lo que intento está funcionando. – BDW