在Linq To SQL中,我使用这样的用户定义函数
[Function(Name = "udf_find_a", IsComposable = true)]
public IQueryable<A> FindA([Parameter(DbType = "varchar(100)")] string keywords)
{
return CreateMethodCallQuery<A>(this, ((MethodInfo) (MethodBase.GetCurrentMethod())), keywords);
}
Run Code Online (Sandbox Code Playgroud)
生成的查询始终包含varchar(8000)作为参数类型.
所以我必须更改函数的参数类型以避免SQL Server错误.
我可以强制Linq To SQL不要忽略我传递的长度吗?
PS nvarchar(4000)也存在同样的问题.