using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.SqlServer;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.SqlClient;
public static void Main()
using (var context = new EntityContext())
context.Database.EnsureCreated();
var XXXQueues = GenerateXXXQueues(5);
using (var context = new EntityContext())
FiddleHelper.WriteTable("1 - XXXQueues Before", context.XXXQueues.AsNoTracking());
context.BulkMerge(XXXQueues);
FiddleHelper.WriteTable("2 - XXXQueues After insert only ", context.XXXQueues.AsNoTracking());
XXXQueues.ForEach(x => x.XXXTopic = "IsUpdate");
var listToAdd = GenerateXXXQueues(5);
listToAdd.First().Id = Guid.NewGuid();
XXXQueues.AddRange(listToAdd);
context.BulkMerge(XXXQueues);
FiddleHelper.WriteTable("3 - XXXQueues After insert and Update", context.XXXQueues.AsNoTracking());
public static List<XXXQueue> GenerateXXXQueues(int countXXXQueue)
List<XXXQueue> list = new List<XXXQueue>();
for(int i = 0; i < countXXXQueue; i++)
var XXXQueue = new XXXQueue() { CreatedDate = DateTime.Now };
public class EntityContext : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
optionsBuilder.UseSqlServer(new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()));
base.OnConfiguring(optionsBuilder);
public DbSet<XXXQueue> XXXQueues { get; set; }
public partial class XXXQueue
#region Generated Constructor
#region Generated Properties
public Guid Id { get; set; }
[Column(TypeName = "varchar")]
public string XXXId { get; set; }
[Column(TypeName = "varchar")]
public string XXXTopic { get; set; }
[Column(TypeName = "varchar")]
public string XXXOrgId { get; set; }
[Column(TypeName = "nvarchar")]
public string XXXHmacSha256 { get; set; }
[Column(TypeName = "nvarchar")]
public string TraceParent { get; set; }
[Column(TypeName = "varchar")]
public string IPAddress { get; set; }
[Column(TypeName = "nvarchar")]
public string UserAgent { get; set; }
[Column(TypeName = "ntext")]
public string Payload { get; set; }
[Column(TypeName = "datetime2")]
public DateTime CreatedDate { get; set; }
[Column(TypeName = "datetime2")]
public DateTime? LastModified { get; set; }
[Column(TypeName = "datetime2")]
public DateTime? PushDate { get; set; }
[Column(TypeName = "ntext")]
public string PushException { get; set; }
[Column(TypeName = "ntext")]
public string PushResponse { get; set; }
[Column(TypeName = "int")]
public int? PushTimes { get; set; }
#region Generated Relationships