如何解决检查表中的多个条目-ASP.NET Core 3.1和EFCore
在尝试使用单个变量检查表中的现有字段时,我试图弄清楚逻辑。这是我的实体类:
public class Metadata
{
public int Id { get; set; }
public string MachineName { get; set; }
public string MachineId { get; set; }
public string UserId { get; set; }
}
例如,假设用户在表中有3个条目,我们用表中的计算机名检查当前计算机名。如果当前计算机名称与表中的计算机名称不匹配,我想在表中保存一个新条目。
此刻,如果表中的第一个计算机名称条目与当前计算机名称相同,我的代码将跳到方法中的else
和returns
之外,第二或第三项可能不是这种情况。另外,如果当前计算机名称与第二个条目匹配,则由于第一个条目不匹配,它将被忽略并保存。
这是我的方法:
private void ValidateMetadata(string userId)
{
// get list of entities if they exist based upon the userId
var MetaList = _Metadata.where(x => x.UserId == userId).ToList();
if(MetaList != null)
{
foreach (var m in MetaList)
{
// check each machine name with current machine name
if (m.MachineName != GetMachineName())
{
// create new entry
var Metadata = new { MachineName = GetMachineName(),MachineId = GetMachineId(),UserId = userId };
// save to db
_Metadata.Save(Metadata);
}
else
{
return;
}
}
}
else
{
// create new entry if there are none in the table
var Metadata = new { MachineName = GetMachineName(),UserId = userId };
// save to db
_Metadata.Save(Metadata);
}
}
解决方法
使用任何
var hasHit = _metadata.Any(x => x.UserId == userId);
示例
var test = new List<string> {"one","two"};
var result = test.Any(x => x.Equals("one"));
结果在示例中为真
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。