微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查表中的多个条目-ASP.NET Core 3.1和EFCore

如何解决检查表中的多个条目-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个条目,我们用表中的计算机名检查当前计算机名。如果当前计算机名称与表中的计算机名称不匹配,我想在表中保存一个新条目。

此刻,如果表中的第一个计算机名称条目与当前计算机名称相同,我的代码将跳到方法中的elsereturns之外,第二或第三项可能不是这种情况。另外,如果当前计算机名称与第二个条目匹配,则由于第一个条目不匹配,它将被忽略并保存。

这是我的方法

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 举报,一经查实,本站将立刻删除。