【问题标题】:Asp.net MVC EF SQL Server returns int -1 and not Objectresult radius searchAsp.net MVC EF SQL Server 返回 int -1 而不是 Objectresult 半径搜索
【发布时间】:2019-02-27 09:06:59
【问题描述】:

我正在一个应用程序中工作,该应用程序显示给定半径内的访问者位置。 所以我做了一个存储过程让sqlserver工作: '

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_GEO_Get_Events_Map_Time](
@RADIUS INT,
@LAT VARCHAR(10),
@LONG VARCHAR(10))

AS
BEGIN        
declare @GEO1 GEOGRAPHY=null
SET @geo1= geography::Point(@LAT, @LONG, 4326)        

  SELECT tbl_Address.ID,street,
         LEFT(CONVERT(VARCHAR, 
         (@geo1.STDistance(geography::Point(ISNULL(LAT,0),ISNULL(LONG,0), 
          4326)))/1000),5)+' Km' as DISTANCE,
                creator,
                StartTime
  FROM  tbl_address join tbl_Event on tbl_address.ID = tbl_event.id
  WHERE (@GEO1.STDistance(geography::Point(ISNULL(LAT,0),ISNULL(LONG,0), 4326)))/1000 < @RADIUS and StartTime > GETDATE()
 END
 GO

我更新了模型,当我调用存储过程时,它返回一个整数,其值为:-1 这里:

            using (var  cont = new LazyWebEntities())
           {
               var a = cont.sp_GEO_Get_Events_Map_Time(10, "48.210033", "16.363449");
               Console.WriteLine(a.ToString());
              Console.ReadKey();
            }

在它生成的 Model.Context.cs 中:

        public virtual int sp_GEO_Get_Events_Map_TimeNEW(Nullable<int> rADIUS, string lAT, string lONG)
    {
        var rADIUSParameter = rADIUS.HasValue ?
            new ObjectParameter("RADIUS", rADIUS) :
            new ObjectParameter("RADIUS", typeof(int));

        var lATParameter = lAT != null ?
            new ObjectParameter("LAT", lAT) :
            new ObjectParameter("LAT", typeof(string));

        var lONGParameter = lONG != null ?
            new ObjectParameter("LONG", lONG) :
            new ObjectParameter("LONG", typeof(string));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("sp_GEO_Get_Events_Map_TimeNEW", rADIUSParameter, lATParameter, lONGParameter);
    }

真的很奇怪,因为当我在 SQLServer 上运行 SP 时,它会返回 requestet 之类的数据

我希望你能帮助我。 谢谢您的回答 汤姆

【问题讨论】:

    标签: asp.net entity-framework model-view-controller


    【解决方案1】:

    嗨,伙计们。这是我自己的问题的答案。我尝试了很多不同的方法。咬什么都没用。于是我的一个朋友有了这样的想法: 我做了一个没有地理类型的查询,将其存储在数据库中,并且更新了 edmx。然后我改变了存储过程(看图片)。现在它工作了。如果有人有同样的问题,请发表评论。我会给你更多的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 2023-03-23
      • 2010-12-24
      相关资源
      最近更新 更多