C# 如何检查复合ID是否存在?
我有一个主键中有3列的表。如何检查特定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
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谢谢!值得注意的是,这个解决方案有两个好处——可读性更强,若实体已经在上下文中,它将不会查询数据库,但它也有缺点——它将从数据库中查询实体的所有字段。