作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想要一个具有以下 API 的方法:
//get all users with a role of admin
var users = myRepository.GetUsers(u => u.Role == Role.Admin);
这样的东西行得通吗?
IList<User> GetUsers(Func<User, bool> predicate)
{
var users = GetAllUsers();
return users.Where(predicate).ToList();
}
如果是这样,我是否能够指定更复杂的谓词,例如(伪代码):
myRepository.GetUsers(u => u.CreatedDate is upto 14 days old);
最佳答案
看起来绝对不错。但是,如果您想将谓词与 LINQ to SQL 之类的东西一起使用,您需要使用:
IList<User> GetUsers(Expression<Func<User, bool>> predicate)
这意味着 lambda 表达式将被转换为表达式树而不是委托(delegate) - 然后该表达式树可以被转换为 SQL。
关于接受谓词的 C# 方法 - 这看起来不错吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206902/
我认为,像Rails这样的框架鼓励从数据库中移出很多逻辑,甚至包括约束和外键之类的东西。更好,因为它更易于管理且易于更改。即使这样,某些操作也更容易更快,或者仅在SQL中才可能。 最近,NoSQL数据
我理解 F1-measure 是精确率和召回率的调和平均值。但是什么值定义了 F1 度量的好坏呢?我似乎找不到任何引用文献(谷歌或学术)来回答我的问题。 最佳答案 考虑sklearn.dummy.Du
我真的被 .NET 4 中引入的代码契约所吸引(尽管有 DevLabs 的帮助)。但是一张精美的打印品让我冷静了很多。这是它说的: 在线程安全方法中在锁外调用后置条件时,除了不使用它们外,目前没有解决
我有一个 GUI 应用程序,它使用 pthreads 进行一些繁重的后台处理。 虽然后台处理正在运行,但 GUI 非常没有响应,我认为这是因为后台线程正在耗尽 CPU 时间。 在 Windows 上,
我是一名优秀的程序员,十分优秀!