Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.ComponentModel.DataAnnotations.Schema;
- using Microsoft.EntityFrameworkCore;
- namespace EFCoreGuidEmptyRepro
- {
- class Program
- {
- static void Main(string[] args)
- {
- using (var db = new MyDbContext())
- {
- var capsId = Guid.NewGuid();
- db.Capses.Add(new CapsEntity
- {
- Id = capsId
- });
- db.CapsShares.Add(new CapsShare
- {
- CapsId = capsId,
- UserId = Guid.Empty
- });
- db.SaveChanges();
- }
- }
- }
- class MyDbContext : DbContext
- {
- public DbSet<UserEntity> Users { get; set; }
- public DbSet<CapsEntity> Capses { get; set; }
- public DbSet<CapsShare> CapsShares { get; set; }
- protected override void OnModelCreating(ModelBuilder modelBuilder)
- {
- modelBuilder.Entity<UserEntity>().ForNpgsqlUseXminAsConcurrencyToken();
- modelBuilder.Entity<CapsEntity>().ForNpgsqlUseXminAsConcurrencyToken();
- modelBuilder.Entity<CapsShare>().HasKey(s => new { s.CapsId, s.UserId });
- modelBuilder.Entity<CapsShare>().HasOne(s => s.Caps).WithMany().HasForeignKey(s => s.CapsId);
- modelBuilder.Entity<CapsShare>().HasOne(s => s.User).WithMany().HasForeignKey(s => s.UserId);
- modelBuilder.Entity<CapsShare>().ForNpgsqlUseXminAsConcurrencyToken();
- }
- protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- {
- optionsBuilder.UseNpgsql("Host=localhost;Database=efdebug;Username=postgres;Password=Add1t1v3", options =>
- {
- options.UseNetTopologySuite();
- options.EnableRetryOnFailure();
- });
- optionsBuilder.EnableSensitiveDataLogging();
- }
- }
- [Table("users")]
- class UserEntity
- {
- [Column("id")]
- public Guid Id { get; set; }
- }
- [Table("capses")]
- class CapsEntity
- {
- [Column("id")]
- public Guid Id { get; set; }
- }
- [Table("caps_shares")]
- class CapsShare
- {
- [Column("caps_id")]
- public Guid CapsId { get; set; }
- [Column("user_id")]
- [DatabaseGenerated(DatabaseGeneratedOption.None)]
- public Guid UserId { get; set; }
- public CapsEntity Caps { get; set; }
- public UserEntity User { get; set; }
- }
- }
Add Comment
Please, Sign In to add comment