LINQ TO SQL:动态执行带有有参数的存储过程

这是一个小的细节,如果我们在LINQ TO SQL中动态执行存储过程,而且它带有参数的话,应该按照下面的方法进行

1. 存储过程

ALTER PROCEDURE dbo.GetCustomerByCountry
(@country NVARCHAR(50))
AS
    /* SET NOCOUNT ON */
    SELECT * FROM Customers WHERE Country=@Country

2. 代码

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {


            NorthwindDataContext db = new NorthwindDataContext();
            db.Log = Console.Out;


            var query = db.ExecuteQuery<Customers>("EXEC GetCustomerByCountry @country={0}", "USA");
            foreach (var item in query)
            {
                Console.WriteLine(item.CustomerID);
            }
        }


    }
}

3. 结果

image

原文地址:https://www.cnblogs.com/chenxizhang/p/1638201.html