什么是实体在实体框架上下文中

本文关键字:实体 上下文 框架 什么 | 更新日期: 2023-09-27 18:19:16

我想用EntityFramework实现这个动作。bulkinset,我检查了文档,但我是EF的新手,我无法弄清楚在这种情况下什么是实体。什么是实体?

foreach (string tag in tags)
    {
        TagUser tagUser = new TagUser()
        {
            //Initialize TagUser
        };

        applicationUser.TagUsers.Add(tagUser);
    }
db.SaveChanges();

下面是其文档中的示例代码:

using (var ctx = GetContext())
{
  using (var transactionScope = new TransactionScope())
  {
    // some stuff in dbcontext
    ctx.BulkInsert(entities);
    ctx.SaveChanges();
    transactionScope.Complete();
  }
}

这是TagUserclass:

public class TagUser
    {
        [Required]
        [Key, Column(Order = 0)]
        [ForeignKey("Tag")]
        public Guid TagId { get; set; }
        [Required]
        [Key, Column(Order = 1)]
        [ForeignKey("ApplicationUser")]
        public string Id { get; set; }

        public virtual Tag  Tag { get; set; }

        public virtual ApplicationUser ApplicationUser { get; set; }

        [Required]
        public bool InEnglish { get; set; }
        [Required]
        public Int16 Priority { get; set; }
    }

什么是实体在实体框架上下文中

实体是标签用户集合,在进行批量插入之前,首先提供FK id。

using (var ctx = GetContext())
{
    using (var transactionScope = new TransactionScope())
    {
        var entities= new List<TagUser>();
        foreach (string tag in tags)
        {
            TagUser tagUser = new TagUser()
            {
                //Initialize TagUser
                TagId = ..., // get something like tag.Id
                Id = applicationUser.Id
            };
            entities.Add(tagUser);
        }
        ctx.BulkInsert(entities);
        ctx.SaveChanges();
        transactionScope.Complete();
    }
}

在这种情况下,entities将是您试图插入的实体列表。因此,不是每次都说TagUsers.Add(taguser),您可能会得到想要插入List<TagUser> tagusers的TagUsers列表(可能像这样,我个人没有使用BulkInsert),并说applicationUser.BulkInsert(tagusers)