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

时间:2014-01-13 10:18:49

标签: c# linq

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

我知道一个主键......但我不知道多少!

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

5 个答案:

答案 0 :(得分:6)

如果您有复合键

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

答案 1 :(得分:1)

您可以检查所有三行 - 例如:

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();
}

答案 2 :(得分:1)

将所有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();
}

答案 3 :(得分:1)

如果您的表中有复合键并且您正在使用Entity Framework,那么您可以使用接受复合主键值列表的DbSet.Find方法:

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

答案 4 :(得分:0)

一种方式是......

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();
}