C# 我是Lambda的新手 public TEntity GetSingle(Func谓词) { 尝试 { var teste=_context.Set().Single(谓词); } 捕获(例外) { 返回null; } 返回_context.Set().Single(谓词); } Func expressionPerfil=Perf=>Perf.IdUsuario==memo.IdUsuario///和Perf.IdTipoPerfil(MaxValue)//和Perf.Name.lenght>3; 添加(“Permissao”,vw_usuarioPerfilAtributoRepository.GetSingle(expressionPerfil.IdTipoPerfil);

C# 我是Lambda的新手 public TEntity GetSingle(Func谓词) { 尝试 { var teste=_context.Set().Single(谓词); } 捕获(例外) { 返回null; } 返回_context.Set().Single(谓词); } Func expressionPerfil=Perf=>Perf.IdUsuario==memo.IdUsuario///和Perf.IdTipoPerfil(MaxValue)//和Perf.Name.lenght>3; 添加(“Permissao”,vw_usuarioPerfilAtributoRepository.GetSingle(expressionPerfil.IdTipoPerfil);,c#,lambda,C#,Lambda,简单的查询问题,但在lambda中,我不知道做“和”+“MaxValue”+其他“WHERE”的好方法。所有示例仅用于一个WHERE。在lambda中,您可以使用&&(for AND)和|for(OR)简单地添加任何条件 Func expressionPerfil=Perf=> Perf.IdUsuario==memo.IdUsuario&& 性能IdTipoPerfil(最大值)和 性能名称长度>3; 在Lambda中,您可以使用&&(For And)和|For(OR)简单地添加任何条件 Fu

简单的查询问题,但在lambda中,我不知道做“和”+“MaxValue”+其他“WHERE”的好方法。所有示例仅用于一个WHERE。

lambda
中,您可以使用
&&
(for AND)和
|
for(OR)简单地添加任何条件

Func expressionPerfil=Perf=>
Perf.IdUsuario==memo.IdUsuario&&
性能IdTipoPerfil(最大值)和
性能名称长度>3;

Lambda
中,您可以使用
&&
(For And)和
|
For(OR)简单地添加任何条件

Func expressionPerfil=Perf=>
Perf.IdUsuario==memo.IdUsuario&&
性能IdTipoPerfil(最大值)和
性能名称长度>3;
这是常规的C#代码,因此请使用
&&
运算符:

Func<vw_UsuarioPerfilAtributo, bool> expressionPerfil = Perf => 
                   Perf.IdUsuario == memo.IdUsuario  && 
                   Perf.IdTipoPerfil(MaxValue) && 
                   Perf.Name.lenght > 3;
Func expressionPerfil=
Perf=>Perf.IdUsuario==memo.IdUsuario&&
性能IdTipoPerfil(最大值)&&
性能名称长度>3;
注意:
lenght
可能应该是
length
length
这是常规的C代码,所以使用
&
操作符:

Func<vw_UsuarioPerfilAtributo, bool> expressionPerfil = Perf => 
                   Perf.IdUsuario == memo.IdUsuario  && 
                   Perf.IdTipoPerfil(MaxValue) && 
                   Perf.Name.lenght > 3;
Func expressionPerfil=
Perf=>Perf.IdUsuario==memo.IdUsuario&&
性能IdTipoPerfil(最大值)&&
性能名称长度>3;

注意:
lenght
可能应该是
length
length
我不确定您的问题,但在where子句中,您可以在多个条件下使用
&
。对于当前语句,请尝试将和替换为&。(与c#相同)

Func expressionPerfil=
Perf=>Perf.IdUsuario==memo.IdUsuario
&&性能IdTipoPerfil(最大值)
&&性能名称长度>3;

我不确定您的问题,但在where子句中,您可以在多个条件下使用
&
。对于当前语句,请尝试将和替换为&。(与c#相同)

Func expressionPerfil=
Perf=>Perf.IdUsuario==memo.IdUsuario
&&性能IdTipoPerfil(最大值)
&&性能名称长度>3;

lamda是简单的内联声明函数

声明如下:()=>{}

还有一个简短的形式:()=>()=>{}//lambda返回一个不做任何事情的lambda

在lambda中,可以使用作用域中的每个局部变量

我不知道你到底想做什么,但我希望我能帮上忙x


关于nil。

lamda是简单的内联声明函数

声明如下:()=>{}

还有一个简短的形式:()=>()=>{}//lambda返回一个不做任何事情的lambda

在lambda中,可以使用作用域中的每个局部变量

我不知道你到底想做什么,但我希望我能帮上忙x

关于Nils。

使用“&&”运算符,就像在普通C中一样#

Func expressionPerfil=Perf=>
Perf.IdUsuario==memo.IdUsuario
&&性能IdTipoPerfil(最大值)
&&性能名称长度>3;
使用“&&”运算符,就像在普通C中一样#

Func expressionPerfil=Perf=>
Perf.IdUsuario==memo.IdUsuario
&&性能IdTipoPerfil(最大值)
&&性能名称长度>3;

考虑一下你的问题,标题本身,措辞和代码格式化…考虑一下你的问题,标题本身,措辞和代码格式化。非常感谢,抱歉我对此一无所知。但是MaxValue不起作用。非常感谢,很抱歉我对此一无所知。但是MaxValue将不起作用。
Func<vw_UsuarioPerfilAtributo, bool> expressionPerfil =
  Perf => Perf.IdUsuario == memo.IdUsuario &&
  Perf.IdTipoPerfil(MaxValue) &&
  Perf.Name.lenght > 3;
Func<vw_UsuarioPerfilAtributo, bool> expressionPerfil =
Perf => Perf.IdUsuario == memo.IdUsuario 
                          && Perf.IdTipoPerfil(MaxValue) 
                          && Perf.Name.lenght > 3;
Func<vw_UsuarioPerfilAtributo, bool> expressionPerfil = Perf => 
    Perf.IdUsuario == memo.IdUsuario 
    && Perf.IdTipoPerfil(MaxValue)
    && Perf.Name.lenght > 3;