检查DbSet中是否存在值的通用函数

兰迪·温克(Randy Wink)

例如,如果我的dbContext中有多个dbSet,则:

  • 公共DbSet人员{ 放; }
  • 公共DbSet公司{ 放; }
  • 公共DbSet <...>

然后,如何创建通用函数来检查动态传递的字段的值是否已经出现?

伪代码中的功能:

bool IsFieldValueUnique<T>(field, fieldValue)
{
  return DbSet<T>.Any(x => x.field == fieldValue)
}

然后函数调用可能类似于:

var result1 = IsFieldValueUnique<Person>(Person.Email, somePersonObject.Email)

var result2 = IsFieldValueUnique<Company>(Company.Identification, someCompanyObject.Identification)

在四处搜寻时,我发现使用'<Func <T,bool >>'之类的方法,但是无法将这些点连接在一起。

戴夫·肖

Func<T, bool> -听起来像是您想要的正确方法。

bool IsFieldValueUnique<T>(Func<T, bool> checkFunction)
{
  var alreadyExists = DbSet<T>.Any(checkFunction);
  return !alreadyExists;
  //Other ways to do this, but this is just for clarity.
}

然后您将其命名为:

IsFieldValueUnique<Person>(person => person.Email == somePersonObject.Email)

您现在拥有的是一种IsFieldValueUnique具有检查功能的方法。此检查函数接受一个T(与您在DbSet中使用的类型相同)并返回一个布尔值。

person => person.Email == somePersonObject.Email是一个匿名函数,对于给定的PersoncompareEmail属性比较实例somePersonObject.Email

如果您查看Any的签名,您将看到与checkFunction签名的相似之处。

如果要在客户上试用,可以:

IsFieldValueUnique<Customer>(cust => person.Name == someCustomer.Name);

笔记:

像这样调用Any: DbSet<T>.Any(checkFunction);

与此相同: DbSet<T>.Any(item => checkFunction(item));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检查DbSet中是否存在值的通用函数

来自分类Dev

检查DbSet中是否存在值的通用函数

来自分类Dev

c函数,用于检查链表中是否存在值

来自分类Dev

检查数组中是否存在函数

来自分类Dev

检查Java ScriptEngine中是否存在函数

来自分类Dev

检查Swift中是否存在全局函数

来自分类Dev

检查Java ScriptEngine中是否存在函数

来自分类Dev

检查OCaml中是否存在函数

来自分类Dev

是否存在检查宏变量中是否存在元素的函数?

来自分类Dev

如何检查python中是否存在值

来自分类Dev

如何检查PropertyDataCollection中是否存在值?

来自分类Dev

检查mongo集合中是否存在值

来自分类Dev

如何检查列表中是否存在值?

来自分类Dev

检查Lua表中是否存在值

来自分类Dev

检查mysql列中是否存在值

来自分类Dev

检查Firebase DB中是否存在值

来自分类Dev

检查数组中是否存在值

来自分类Dev

检查矩阵中是否存在设置值

来自分类Dev

检查数组javascript中是否存在值

来自分类Dev

检查json数组中是否存在值

来自分类Dev

检查JavaScript中是否存在节点值

来自分类Dev

检查特定行中是否存在值

来自分类Dev

WordPress检查数组中是否存在值

来自分类Dev

检查 SQL 中是否已存在值

来自分类Dev

检查数组中是否存在键/值对

来自分类Dev

检查列表中是否存在值

来自分类Dev

检查 ArrayList 中是否存在 JTextfield 值

来自分类Dev

检查坐标间隔中是否存在值

来自分类Dev

如何检查firebase中是否存在值