比较从数据库到已发布字符串的字符串

本文关键字:字符串 数据库 比较 | 更新日期: 2023-09-27 18:32:12

我有一个数据库,我希望它的一部分(名称)不被重复。我正在尝试检查它是否存在,如果是,则不保存此部分,但是无论它是否已经存在,它都会保存。

法典:

var reviewSubject = from c in db.Subject select 
c.SubjectName.ToString().ToLower();
var match = reviewSubject.FirstOrDefaultAsync(stringToCheck => stringToCheck.Equals(model.sub.SubjectName.ToLower()));
model.rev.Created = DateTime.Now;
if (ModelState.IsValid)
{
    if ((model.sub.SubjectName.ToLower()).Equals(match))
    {
        //Do nothing 
    }
    else
    {
        model.sub.GBU = model.rev.GBU;
        db.Subject.Add(model.sub);
    }
}

比较从数据库到已发布字符串的字符串

您没有对返回Task<T>reviewSubject.FirstOrDefaultAsync 的结果使用 await 关键字。因此,您正在检查任务是否等于字符串,这是假的。

正确的用法是:

var match = await reviewSubject.FirstOrDefaultAsync(stringToCheck => stringToCheck.Equals(model.sub.SubjectName.ToLower()));`

如果您不想使用异步方法,则可以按以下方式使用同步方法:

var match = reviewSubject.FirstOrDefault(stringToCheck => stringToCheck.Equals(model.sub.SubjectName.ToLower()));`