Entiendo que el mapeo de procedimientos almacenados no es compatible con mi entendimiento de que debería poder llamar a procedimientos almacenados.Ejecutar StoredProcedure en CodeFirst 4.1
Tengo bastantes procedimientos almacenados complejos y con el diseñador podría crear un tipo complejo y estaba todo bien.
Ahora en el código primero supongamos que tengo el siguiente procedimiento almacenado, solo junte algo tonto para dar una idea. Quiero devolver un estudiante con 1 dirección.
En el código tengo una entidad de estudiante y dirección. Pero no StudentAddressEntity
ya que es una tabla de enlaces.
He intentado el siguiente pero me da un error
sintaxis incorrecta cerca'. "}
System.Data.Common.DbException {} System.Data.SqlClient.SqlException
ALTER Procedure [dbo].[GetStudentById]
@StudentID int
AS
SELECT *
FROM Student S
left join StudentAddress SA on S.Studentid = sa.studentid
left join Address A on SA.AddressID = A.AddressID
where S.StudentID = @StudentID
código C#:
using (var ctx = new SchoolContext())
{
var student = ctx.Database.SqlQuery<Student>("GetStudentById,@StudentID",
new SqlParameter("StudentID", id));
}
Cualquier ejemplo de cómo llamar sp y completar primero un tipo complejo de código, usando parámetros, etc. ¿Puedo conectar ADO.NET?
Tratando sólo un SP que devuelve todos los estudiantes sin parámetros que recibo este error
System.SystemException = No se puede crear un valor para la propiedad 'StudentAddress' de tipo 'CodeFirstPrototype.Dal.Address'. Solo las propiedades con tipos primitivos son compatibles con .
¿Es porque de alguna manera ignoro la tabla de enlaces?
¿Alguna sugerencia?
Gracias por su reply.That trabajó – user712923