Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查复合ID是否存在?_C#_Linq - Fatal编程技术网

C# 如何检查复合ID是否存在?

C# 如何检查复合ID是否存在?,c#,linq,C#,Linq,我有一个主键中有3列的表。如何检查特定ID是否存在 我知道一个主键。。。但我不知道有多少 public bool Check(string id) { return (from eee in Db.table where eee.id == id select eee).Any(); } 您可以检查所有三行,如: public bool Check(string id, string id2, string id3) { return (from eee in Db.ta

我有一个主键中有3列的表。如何检查特定ID是否存在

我知道一个主键。。。但我不知道有多少

public bool Check(string id)
{
    return (from eee in Db.table where eee.id == id select eee).Any();
}

您可以检查所有三行,如:

public bool Check(string id, string id2, string id3)
{
       return (from eee in Db.table where eee.id == id select && eee.id2 == id2 select && eee.id3 == id3 select eee).Any();
}

如果你有一个复合键

public bool Check(string key1, string key2, string key3) {
  return Db.table.Any(x => x.key1== key1 && x.key2 == key2 && x.key3 == key3);
}

将所有ID传递给函数并尝试此代码

public bool Check(string id ,string id_2 , string id_3)
{
   return (from eee in Db.table where eee.id == id select && eee.id_2 == id_2 select && eee.id_3 == id_3 select eee).Any();
}
一种方法是

public bool IsCompositeKey(string id, string id2, string id3)
{
    return (from eee in Db.table where eee.id == id select && eee.id2 == id2 select && eee.id3 == id3 select eee).Any();
}

如果表中有复合键,并且使用的是实体框架,则可以使用接受复合主键值列表的方法:

return db.table.Find(key1, key2) != null;

什么意思?您是否有1个id或3部分复合键,或者有3个主键可能在中的表?或者…?一个表如何包含3个主键。。。。。。。它是三个字段的组合……它不能,这就是为什么我问他是什么意思。复合主键确实存在……是的,但这是一个包含3列的主键。他在问如何检查是否有一个身份证。如果您将密钥分散在3列上并希望检查1个值,我看不出这怎么可能。您不应该将id2和id3也作为方法参数传递吗?@zey谢谢!值得注意的是,这个解决方案有两个好处——可读性更强,若实体已经在上下文中,它将不会查询数据库,但它也有缺点——它将从数据库中查询实体的所有字段。