Выполнить StoredProcedure в CodeFirst 4.1

Я понимаю, что сопоставление хранимых процедур не поддерживается, поскольку я понимаю, что я должен иметь возможность вызывать хранимые процедуры.

У меня довольно много сложных хранимых процедур, и с помощью конструктора я мог создать сложный тип, и я был всем хорошо.

Теперь в коде сначала давайте предположим, что у меня есть следующая хранимая процедура, просто составим что-нибудь глупое, чтобы дать представление. Я хочу вернуть студента с адресом 1.

В коде у меня есть объект "Студент и адрес". Но нет StudentAddressEntity , поскольку это таблица ссылок.

Я пробовал следующее, но получаю сообщение об ошибке

Неверный синтаксис рядом с '. "}

У меня довольно много сложных хранимых процедур, и с помощью дизайнера я мог создать сложный тип, и все было хорошо.

Теперь, сначала в коде, давайте предположим, что у меня есть следующая хранимая процедура, просто составьте что-то глупое, чтобы дать идея. Я хочу вернуть студента с адресом 1.

В коде у меня есть объект "Студент и адрес". Но нет StudentAddressEntity , так как это таблица ссылок.

Я пробовал следующее, но получаю сообщение об ошибке

Неправильный синтаксис рядом с '. "}

У меня довольно много сложных хранимых процедур, и с помощью конструктора я мог создать сложный тип, и все было хорошо.

Теперь, сначала в коде, давайте предположим, что у меня есть следующая хранимая процедура, просто составьте что-то глупое, чтобы дать идея. Я хочу вернуть студента с адресом 1.

В коде у меня есть объект "Студент и адрес". Но нет StudentAddressEntity , поскольку это таблица ссылок.

Я пробовал следующее, но получаю сообщение об ошибке

Неверный синтаксис рядом с '. "}
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 #:

using (var ctx = new SchoolContext())
{
   var student = ctx.Database.SqlQuery<Student>("GetStudentById,@StudentID",
                                                new SqlParameter("StudentID", id));
}

Любые примеры того, как вызвать sp и сначала заполнить complexType в коде, используя параметры и т. Д. Могу я подключить в ADO.NET?

Попытавшись использовать только SP, который возвращает всех учащихся без параметров, я получаю эту ошибку

System.SystemException = Невозможно создать значение для свойства StudentAddress типа 'CodeFirstPrototype.Dal.Address'. Только свойства с примитивными типами поддерживается.

Это потому, что я каким-то образом игнорирую таблицу ссылок?

Есть предложения?

5
задан Ladislav Mrnka 25 April 2011 в 12:06
поделиться