在我的sql中,我有一个存储过程,它使用链接服务器从其他服务器查询数据。
Bellow是我的存储过程
CREATE PROCEDURE [FIMS].[GetContactInfo]
@ContactID nvarchar(MAX)
AS
BEGIN
DECLARE @LinkServerName VARCHAR(25)
DECLARE @UserName VARCHAR(25)
DECLARE @Password VARCHAR(25)
SET @LinkServerName = 'myserverip'
SET @UserName = 'username'
SET @Password = 'password'
IF ((@LinkServerName IS NOT NULL) AND (@UserName IS NOT NULL) AND (@Password IS NOT NULL))
BEGIN
IF NOT EXISTS (SELECT 1 FROM master.dbo.sysservers WHERE srvname = @LinkServerName)
BEGIN
exec sp_addlinkedserver @server=@LinkServerName;
exec sp_addlinkedsrvlogin @rmtsrvname= @LinkServerName,@useself=false, @rmtuser=@UserName, @rmtpassword=@Password;
END
DECLARE
@strSQL NVARCHAR(MAX)
SET @strSQL = 'SELECT
fcContact.Name as CompanyName, fcPhone.Area + fcPhone.Prefix + fcPhone.Trunk as ContactNumber
FROM
'+ '[' + @LinkServerName + ']' + '.[MyDB].[AssContactPhone] fcAssContactPhone INNER JOIN
'+ '[' + @LinkServerName + ']' + '.[MyDB].[Contact] fcContact ON fcAssContactPhone.ContactID = fcContact.ContactID INNER JOIN
'+ '[' + @LinkServerName + ']' + '.[MyDB].[Phone] fcPhone ON fcAssContactPhone.PhoneID = fcPhone.PhoneID
where fcContact.ContactID = '+ @ContactID +''
EXEC(@strSQL)
END
END
我在我的实体框架中使用该存储过程,但它总是将结果返回为“-1”
如何在我的实体框架中使用此存储过程返回的结果?
答案 0 :(得分:0)
我必须假设它是使用C#命令调用的,因为问题被标记为这样,在这种情况下,你可能会发现它不是SP那个&#39 ; s返回-1但方法本身。在没有看到代码的情况下,很难确切地说出原因,但这通常是因为调用SQL命令的方式而发生的。 -1可以简单地说是SQL命令正确执行的响应。如果要在C#中返回结果,则需要使用reader命令而不是执行。