using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using Microsoft.Data.SqlClient;
public static void Main()
using (var context = new EntityContext())
context.Database.EnsureCreated();
var providerRecord = new ProviderRecord
ProviderRecordIdentifier = new ProviderRecordIdentifier
providerRecord.ProviderRecordIdentifier.ProviderRecordProperties.Add(new ProviderRecordProperty
providerRecord.ProviderRecordIdentifier.ProviderRecordProperties.Add(new ProviderRecordProperty
using (var context = new EntityContext())
context.Add(providerRecord);
FiddleHelper.WriteTable("1 - ProviderRecordIdentifiers", context.ProviderRecordIdentifiers);
FiddleHelper.WriteTable("2 - ProviderRecord", context.ProviderRecords);
FiddleHelper.WriteTable("3 - ProviderRecordProperties", context.ProviderRecordProperties);
class EntityContext : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
optionsBuilder.UseSqlServer(new SqlConnection(FiddleHelper.GetConnectionStringSqlServer()));
base.OnConfiguring(optionsBuilder);
public DbSet<ProviderRecordIdentifier> ProviderRecordIdentifiers { get; set; }
public DbSet<ProviderRecord> ProviderRecords { get; set; }
public DbSet<ProviderRecordProperty> ProviderRecordProperties { get; set; }
public class ProviderRecordIdentifier
public ProviderRecordIdentifier()
ProviderRecordProperties = new HashSet<ProviderRecordProperty>();
public int Id { get; set; }
public int ProviderId { get; set; }
public string ProviderKey { get;set; }
public ProviderRecord ProviderRecord { get; set; }
public virtual ICollection<ProviderRecordProperty> ProviderRecordProperties { get; set; }
public class ProviderRecord
public int Id { get; set; }
public string Brand { get; set; }
public int ProviderRecordIdentifierId { get; set; }
public ProviderRecordIdentifier ProviderRecordIdentifier { get; set; }
public class ProviderRecordProperty
public int Id { get; set; }
public string Key { get; set; }
public string Value { get; set; }
public int ProviderRecordIdentifierId { get; set; }
public ProviderRecordIdentifier ProviderRecordIdentifier { get; set; }