Я хочу иметь возможность сделать следующее:
У меня есть модель, и внутри у меня есть сущность.
Эта сущность имеет следующую структуру:
public class Client
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
Что я хочу сейчас, это просто получить имя клиента на основе идентификатора.
Поэтому я написал хранимую процедуру, которая делает это.
CREATE PROCEDURE [Client].[GetBasics]
@Id INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
SELECT
Name
FROM Client.Client
INNER JOIN Client.Validity ON ClientId = Client.Id
WHERE
Client.Id = @Id;
END
Теперь, возвращаясь к VS, я обновляю модель из базы данных с включенной хранимой процедурой.
Следующий шаг - сопоставить эту хранимую процедуру с клиентской сущностью как функцией импорта.
Это тоже отлично работает.
Попытка загрузить имя одного клиента приводит к ошибке во время выполнения ...
"Считыватель данных несовместим с
указанный CSTestModel.Client.
член типа «Id» не
иметь соответствующий столбец в
считыватель данных с тем же именем. "
Я в порядке с сообщением. Я знаю, как это исправить (возвращая в качестве результирующего набора Id, Name, Description).
Моя идея заключается в следующем:
Я просто хочу загрузить части объекта, а не сам объект.
У меня есть ограничение - использовать хранимые процедуры для всего обмена данными с базой данных.
Есть ли решение моей проблемы (кроме создания сложных типов, LINQ для самого набора результатов)?
И если да, может ли кто-нибудь указать мне правильное направление?
Большое спасибо,
Dimi