【问题标题】:Check if entity contains record检查实体是否包含记录
【发布时间】:2023-03-23 10:55:01
【问题描述】:

我有一个程序,它将课程添加到实体表中。我正在按如下方式创建课程:

 var course = new CategoryToCourse
        {
          ContentItemID = contentItem.ContentItemID,
          IsRequiredCourse = contentItem.IsRequired,
          DueDate = dueDate,
          SortOrder = 0
        };

现在,在添加课程之前,我想检查它是否已存在于 CategoryToCourse 实体中。

我该如何处理?

【问题讨论】:

  • 如果属性不匹配,if(!Context.CategoryToCourses.Any(x => x.ContentItemID == contentItem.ContentItemID)) 将返回 false。它也适用于多个属性。只需为每个属性添加`&&...`
  • 你总是可以做var data = context.CategoryToCourse.FirstOrDefault(s => s.ContentItemID == contentItem.ContentItemID); If(data == null) add else don't

标签: c# asp.net asp.net-mvc entity-framework asp.net-core


【解决方案1】:

在此处对如何定义重复项做出一些重大假设,但您的解决方案可能类似于:

var existingCourse = dbContext.CategoryToCourses.SingleOrDefault(c => c.ContentItemID == contentItem.ContentItemID);

if (existingCourse == null) 
{
   var course = new CategoryToCourse
      {
         ContentItemID = contentItem.ContentItemID,
         IsRequiredCourse = contentItem.IsRequired,
         DueDate = dueDate,
         SortOrder = 0
      };

   // save course to database via repository pattern or directly through your DbContext
}

旁注:在未来,更多地解释您所尝试的内容以及有关您的问题的更多详细信息会更有益(例如,在这种情况下,是否“重复”了具有相同 ContentItemID 的课程?)

【讨论】:

    猜你喜欢
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多