c# - 根据列和某个对象的字段检查 SQL 表中是否存在对象

标签 c# sql linq

我当前正在尝试检查 SQL 表中是否存在具有唯一 ID 的对象实例。以免重复放置。这是我目前拥有的示例:

string ui = someObj.getUniqueID();

IQueryable<String> checkDataQuery = from cdq in db.SomeObjects
                                           where cdq.UniqueID == ui
                                           select cdq.UniqueID;

if (checkDataQuery != ui) // This is just my attempt at making sure that
                          // the query actually returned something and not 
                          // the string representing nothing found, so if there
                          // is a better checking method that would even more helpful.

我遇到的主要问题是我无法以字符串的形式访问checkDataQuery。我尝试对其进行转换,并使用 .Single()/.First() 方法,但是,前者没有成功,后者使单个字符串返回到字符列表中。

最佳答案

您可以使用 Enumerable.Any 检查结果,例如:

bool ifExists = db.SomeObjects.Any(r=> r.UniqueID == ui);

如果您想获取该对象,则可以使用 FirstOrDefault 并检查 null,如下所示:

var dbObject = db.SomeObjects.FirstOrDefault(r=> r.UniqueID == ui);
if(dbObject != null)
{
  //record exists
}

关于c# - 根据列和某个对象的字段检查 SQL 表中是否存在对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22612838/

相关文章:

sql - 显示每条记录的总和

c# - 在 Entity Framework 查询的 Select 子句中使用函数

c# - 值不在预期范围内

c# - 无法通过拖动边框来调整窗体大小

php - 将值设置为 NULL 而不是 'NULL'

MySQL 全文搜索 : One-to-many Relationships

Linq - 将一个 ILookup 转换为另一个 ILookup

linq - LINQ 查询返回的 Int 列表

c# - 序列化列表<T>问题

c# - 在 Windows 窗体中使用 SHA-256 散列文本