Это моя хранимая процедура:
Код: Выделить всё
ALTER PROCEDURE rsm_Select
@Id [int]
AS
BEGIN
SET NOCOUNT ON;
SELECT
u.*, p.*, ut.*
FROM
Users u
LEFT JOIN
UserProfiles p ON u.userProfile_Id = p.Id
LEFT JOIN
UserTypes ut ON u.UserType_Id = ut.Id
WHERE
u.Id = @Id;
END
Код: Выделить всё
User, UserProfile, UserType
Код: Выделить всё
Public class User
{
public int Id { set; get; }
public string U_UserName { set; get; }
public string U_UserPass { set; get; }
public string U_Accountstat { set; get; }
public virtual UserProfile UserProfile_Id { set; get; }
public virtual UserType Usertype_Id { set; get; }
}
public class Admin : User
{
//...
}
public class SuperAdmin : Admin
{
//...
}
public Class UserType
{
public int Id { set; get; }
public string TypeName { set; get; }
}
public class UserProfile
{
public int Id { set; get; }
public string UFirstName { set; get; }
public string ULastName { set; get; }
public string UContact { set; get; }
public virtual User U_Id { set; get; }
}
В таблице User ProfileID и UserTypeId являются внешними ключами.
СЕЙЧАС
Когда я пытаюсь выполнить хранимой процедуре, я получу значение NULL в UserProfile_ID и UserType_ID.
Вот как я ее запускаю:
Код: Выделить всё
void Select(int userId)
{
using (var context = new myCodeFirstApproach())
{
var Result = context.Database
.SqlQuery("EXEC rsm_Select @Id", new SqlParameter("@Id", userId))
.ToList();
}
}
Когда я запускаю хранимую процедуру в SQL Server Management Studio, она возвращает правильный результат, но не в моем коде.
Что здесь не так?
PS: все остальные хранимые процедуры для обновления, удаления и создания работают нормально.
Я пытаюсь изменить хранимая процедура, но результат тот же
Подробнее здесь: https://stackoverflow.com/questions/776 ... ored-proce