Отображение возвращаемого значения в хранимых процедурах в Entity Framework - PullRequest
1 голос
/ 23 декабря 2010

Я вызываю хранимую процедуру с EntityFramework.Но пользовательское свойство, которое я установил в частичном классе сущности, является нулевым.У меня есть сущности в моем edmx (я назвал edmx, я не знаю, что для этого нужно).Например, у меня есть таблица «Пользователь» в моей базе данных, и поэтому у меня есть класс «Пользователь» в моей сущности.У меня есть хранимая процедура с именем GetUserById (@userId), и в этой хранимой процедуре я пишу базовый SQL-оператор, как показано ниже

"SELECT * FROM Users WHERE Id=@userId"

, в моем edmx я делаю импорт функции, чтобы вызвать эту хранимую процедуру и установить еевернуть значение в Entities (также выберите User из выпадающего списка).Он отлично работает, когда я вызываю свою хранимую процедуру, как показано ниже

User user = Context.SP_GetUserById(123456);

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

SELECT *, dbo.ConcatRoles(U.Id) AS RolesAsString
    FROM membership.[User] U
    WHERE Id = @id

Теперь, когда я выполняюэто из SSMS новый столбец с именем RolesAsString появляется в результате.Чтобы работать с этой структурой сущностей, я добавил новое свойство RolesAsString в мой класс User, как показано ниже.

public partial class User
    {
        public string RolesAsString{ get; set; }
    }

Но это поле не заполняется хранимой процедурой, когда я ее вызываю.Я смотрю в окна Mapping Detail моего SP_GetUserById, в этом окне нет отображения.Я хочу добавить, но окно доступно только для чтения, я не могу отобразить его.Я посмотрел на источник edmx не могу найти что-либо о сопоставлении SP.

Как я могу сопоставить это настраиваемое поле?

Ответы [ 2 ]

0 голосов
/ 06 мая 2012

Вы должны создать сложный тип для SP вместо использования частичного класса.

0 голосов
/ 24 декабря 2010

Попробуйте добавить свойство к сущности Пользователь в браузере модели. Он может работать, если он определен в модели, а не как частичный класс ... или, в конце концов, самое простое - вернуть его к сущности и преобразовать результат SP в результат User, как последнее средство. 1001 *

НТН.

...