Не удалось найти тип или имя пространства имен для результата хранимой процедуры - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь создать контроллер веб-API, который будет вызывать хранимую процедуру на SQL сервере.

Я создал новую хранимую процедуру в базе данных и добавил ее в Обозреватель моделей под Function Imports в модели и .Store -> Stored Procedures / Functions.

Я вижу в .edmx файле мой класс.

public partial class CurrentCall
{
        public int call_id { get; set; }
        public int city { get; set; }
        public System.DateTime call_received { get; set; }
        public Nullable<System.DateTime> call_transfer { get; set; }
        public Nullable<System.DateTime> call_response { get; set; }
        public Nullable<System.DateTime> call_depart { get; set; }
        public Nullable<System.DateTime> call_arrive { get; set; }
        public Nullable<System.DateTime> call_return { get; set; }
        public Nullable<System.DateTime> call_end { get; set; }
        public string priorityName { get; set; }
        public string Call_Status { get; set; }
        public string station_name { get; set; }
        public string city_name { get; set; }
        public string protocolName { get; set; }
}

В обозревателе решений я не могу получить и увидеть поля CurrentCall Функция, как для Driver Таблица.

enter image description here

Более того, в файле .Context.cs я получаю ошибку в следующем коде в <Currentcall>, что

CS0246 C# Не удалось найти тип или имя пространства имен (вы отсутствует директива using или ссылка на сборку?)

Код:

public virtual ObjectResult<CurrentCall> current_call(Nullable<int> call_id)
{
    var call_idParameter = call_id.HasValue ?
                                   new ObjectParameter("call_id", call_id) :
                                   new ObjectParameter("call_id", typeof(int));

    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<CurrentCall>("current_call", call_idParameter);
}

Это мой stored-procedure:

CREATE PROCEDURE [dbo].[current_call]
    -- Add the parameters for the stored procedure here
    @call_id int
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT dbo.Call.call_id, dbo.Call.city, dbo.Call.call_received, dbo.Call.call_transfer, dbo.Call.call_response, dbo.Call.call_depart, dbo.Call.call_arrive, dbo.Call.call_return, dbo.Call.call_end, dbo.Priority.name AS priorityName, dbo.Call_Status.name as Call_Status, 
                  dbo.Station.station_name, dbo.City.city_name, dbo.Protocol.name AS protocolName
FROM     dbo.City INNER JOIN
                  dbo.Call INNER JOIN
                  dbo.Priority ON dbo.Call.priority = dbo.Priority.priority_id ON dbo.City.city_id = dbo.Call.city INNER JOIN
                  dbo.Protocol ON dbo.Call.protocol_category = dbo.Protocol.id LEFT OUTER JOIN
                  dbo.Station INNER JOIN
                  dbo.Ambulance ON dbo.Station.station_id = dbo.Ambulance.ambulance_station ON dbo.Call.amb_id = dbo.Ambulance.ambulance_id
                  INNER JOIN
                  dbo.Call_Status ON dbo.Call.call_status = dbo.Call_Status.call_status_id

WHERE dbo.Call.call_id=@call_id;
END
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...