Linq使用数据库存储过程
在使用linq to SQL 的时候,我们常用一些复杂的复杂的sql语句,但是结果总是不如我们所愿。报错。。。
后来发现,原来在使用的时候,我们还是需要一些特殊设置的
[Function(Name = "dbo.fn_getpy", IsComposable = true)] [return: Parameter(DbType = "nvarchar(400) ")] public string ConvertChineseToPinyin([Parameter(Name = "str", DbType = "nvarchar(100)")]string @str) { return (string)this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), @str).ReturnValue; }
然后,我们再去使用。。。貌似可以了。。。
顺便把别人写的sql也贴出来吧。。。
1 use Platform; 2 3 create function [dbo].[fn_getpy](@str nvarchar(100)) 4 returns nvarchar(400) 5 as 6 begin 7 declare @str_len int, 8 @result nvarchar(400), 9 @crs nvarchar(1) 10 set @str_len=len(@str) 11 set @result= ' ' 12 while @str_len> 0 13 begin 14 set @crs=substring(@str,@str_len,1) 15 16 select @str_len=@str_len-1,@result= 17 case 18 when @crs>='帀' then 'Z' 19 when @crs>='丫' then 'Y' 20 when @crs>='夕' then 'X' 21 when @crs>='屲' then 'W' 22 when @crs>='他' then 'T' 23 when @crs>='仨' then 'S' 24 when @crs>='呥' then 'R' 25 when @crs>='七' then 'Q' 26 when @crs>='妑' then 'P' 27 when @crs>='噢' then 'O' 28 when @crs>='拏' then 'N' 29 when @crs>='嘸' then 'M' 30 when @crs>='垃' then 'L' 31 when @crs>='咔' then 'K' 32 when @crs>='丌' then 'J' 33 when @crs>='铪' then 'H' 34 when @crs>='旮' then 'G' 35 when @crs>='发' then 'F' 36 when @crs>='妸' then 'E' 37 when @crs>='咑' then 'D' 38 when @crs>='嚓' then 'C' 39 when @crs>='八' then 'B' 40 when @crs>='吖' then 'A' 41 else @crs end+@result 42 end 43 return(@result) 44 END