如何在 MVC C# 中查找数据库记录

本文关键字:查找 数据库 记录 MVC | 更新日期: 2023-09-27 18:37:04

我有这个 C# 和 linq 到数据库来获取数据库的所有数据行

var getOldAttachment = _context.ca_Attachments.Where(x => x.CaseId == getCase[0].Id && x.isDeleted == false).ToList();

比我想使用 foreach 将确切的数据行重新插入数据库并更新新数据列,简单来说就是复制相同的数据行但具有不同的值。 数据行包含 Id、创建者、附件 ID、上次更新。 值分别为:1,测试器,12345,2015-11-16 11:49:50.810 我只想将编辑器的值更改为调用编辑器的当前用途。我应该在????里放什么部分?

if (getOldAttachment != null && getOldAttachment.Count > 0)
                {
                    //foreach (??????)
                    //{
                    //    data.ca_Attachments.Add(new ca_Attachment
                    //    {
                    //        AttachmentId = getOldAttachment.attachmentId,
                    //        creator = editor,
                    //        LastUpdatedOn = _startTime,
                    //    });
                    //}
                }

如何在 MVC C# 中查找数据库记录

注意:ToList()后无需检查null。它永远不会为空。你也不需要检查Count > 0,因为我们要迭代它(如果无论如何没有项目,它不会执行)。

你可以简单地写:

var oldAttachments = _context.ca_Attachments
                             .Where(x => x.CaseId == getCase[0].Id && !x.isDeleted)
                             .ToList();
foreach (var oldAttachment in oldAttachments) 
{
    data.ca_Attachments.Add(new ca_Attachment
    {
        AttachmentId = oldAttachment.attachmentId,
        creator = editor,
        LastUpdatedOn = _startTime,
    });
}

以下是使用 ForEach 的一个选项:

getOldAttachment.ForEach(att => {
    _context.ca_Attachments.Add(new ca_Attachment
           {
                AttachmentId = att.attachmentId,
                creator = editor,
                LastUpdatedOn = _startTime,
           });
});

这使用_context来添加新的附件而不是data - 不确定data是什么......

if (getOldAttachment != null && getOldAttachment.Count > 0)
            {
              for(var i = 0; i < getOldAttachment.Count; i++)
              {
                  //this is how to populate the data from list
                  //sample only
                  ca_Attachment.AttachmentId = getOldAttachment[i].AttachmentId;
                  //do the insert code
              }
            }