比较从数据库到已发布字符串的字符串
本文关键字:字符串 数据库 比较 | 更新日期: 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()));`