我使用下面的代码来生成动态绑定表达式;这里如何将表达式左右部分转换为下?因为我想过滤小写和大写过滤器。
private static Expression GetExpression<T>(ParameterExpression param, Filter filter)
{
MemberExpression member = Expression.Property(param, filter.PropertyName);
ConstantExpression constant = Expression.Constant(filter.Value);
switch (filter.Operation)
{
case Op.Equals:
return Expression.Equal(member, constant);
case Op.GreaterThan:
return Expression.GreaterThan(member, constant);
case Op.GreaterThanOrEqual:
return Expression.GreaterThanOrEqual(member, constant);
case Op.LessThan:
return Expression.LessThan(member, constant);
case Op.LessThanOrEqual:
return Expression.LessThanOrEqual(member, constant);
case Op.Contains:
return Expression.Call(member, containsMethod, constant);
case Op.StartsWith:
return Expression.Call(member, startsWithMethod, constant);
case Op.EndsWith:
return Expression.Call(member, endsWithMethod, constant);
}
return null;
}
Run Code Online (Sandbox Code Playgroud) 我正在从主存储过程执行另一个存储过程。主要存储过程如下
ALTER Procedure [dbo].[SaveLabTestEntry]
(
@LE_No nvarchar(100)=null,
@hcp_id varchar(25)=null,
@Pat_prof_Id nvarchar(100)=null,
@Usr_Id nvarchar(100)=null,
@LE_Date nvarchar(100)=null,
@LE_Time nvarchar(100)=null,
@HospitalName nvarchar(100)=null,
@Mode nvarchar(10)=null,
@dt LabEntryD_TVP READONLY
)
AS
Declare @ResultMsg as nvarchar(50)
Declare @MaxID as Int
Declare @Status as Int
Begin
BEGIN TRY
BEGIN TRANSACTION SaveData
IF @Mode='ADD'
BEGIN
IF @HospitalName IS NOT NULL AND @HospitalName<>''
BEGIN
EXEC @hcp_id= InsertPatAddedHosp @HospitalName, @Usr_Id
END
SET @MaxID = (SELECT [Vr_No] + 1 FROM [VrLastNo] WHERE [Vr_Code]='LAB-H' AND [Loc_Id]=1 AND [Co_Cd]='HO')
SET @LE_No = 'P'+CAST(@MaxID …Run Code Online (Sandbox Code Playgroud)