LightSpeed 之Sql和存储过程的使用
虽然使用LightSpeed提供的Query就可以解决绝大部分问题,但如果业务逻辑过于复杂,有时候还是需要执行SQL语句或者存储过程
用SQL的方式就是使用FindBySql。
FindBySql的参数只有一个 Command。
而创建Command的方式则不是那么简单
var cmd = unitOfWork.Context.DataProviderObjectFactory.CreateCommand();
Command需要赋予Text,也许还会有参数
cmd.CommandText = "exec dbo.my_stored_proc";
//或
cmd.CommandText = "SELECT * FROM Table";
var metadata = new[] { new SqlMetaData("value", SqlDbType.NVarChar, 10) }; // the members of your SQL Server table type var data1 = new SqlDataRecord(metadata); // In reality you'd create a helper method for this data1.SetValues("1"); var data2 = new SqlDataRecord(metadata); data2.SetValues("2"); var data = new [] { data1, data2 }; cmd.Parameters.Add(new SqlParameter("@stringArrayInput", data) { SqlDbType = SqlDbType.Structured });