我正在使用Entity Framework代码优先方法.我想从DbContext类中调用存储过程并获取XML输出.
存储过程(SQL Server):
CREATE PROCEDURE xml_test
AS
BEGIN
DECLARE @xml1 xml
SET @xml1 = (SELECT * from Product FOR XML RAW)
SELECT @xml1 AS my_xml
END
Run Code Online (Sandbox Code Playgroud)
LINQ实体框架:
using (DBContext db = new DBContext())
{
var ProductList = await db.Database.ExecuteSqlCommandAsync("exec xml_test");
}
Run Code Online (Sandbox Code Playgroud)
这里的ProductList列表返回-1.
我想获取存储过程返回的xml输出.
注意:我也尝试了类似的方法:ExecuteSqlCommand,SqlQuery没有帮助.
如何检查ExecuteNonQuery for SELECT sql语句后返回没有行返回没有行?
我有一个不需要任何参数的存储过程,并返回值0和消息:
(94 row(s) affected)
(1 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
我的问题是如何获取消息:
(94 row(s) affected)
(1 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
这是我调用存储过程的.NET方法:
public List<MessageClass> ChequesToUpdate()
{
message = new List<MessageClass>();
MessageClass item = new MessageClass();
try
{
using (connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlCommand command = new SqlCommand("MyStoredProcedure", connection))
{
command.CommandType = CommandType.StoredProcedure;
command.ExecuteNonQuery();
item.message = "message";
}
}
}
catch (Exception e)
{
item.message = e.Message;
}
finally
{
connection.Close();
}
message.Add(item);
return message;
}
Run Code Online (Sandbox Code Playgroud)
我希望将信息传入item.message,我将如何实现这一目标?