#58 added owned entity for SocialNetworks that belongs to an ApplicationUser
This commit is contained in:
@@ -1,32 +1,29 @@
|
||||
using System.Reflection;
|
||||
using Hutopy.Application.Common.Interfaces;
|
||||
using Hutopy.Application.Common.Interfaces;
|
||||
using Hutopy.Domain.Entities;
|
||||
using Hutopy.Infrastructure.Data.Configurations;
|
||||
using Hutopy.Infrastructure.Identity;
|
||||
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Hutopy.Infrastructure.Data;
|
||||
|
||||
public class ApplicationDbContext(
|
||||
DbContextOptions<ApplicationDbContext> options)
|
||||
: IdentityDbContext<ApplicationUser>(options), IApplicationDbContext
|
||||
namespace Hutopy.Infrastructure.Data
|
||||
{
|
||||
public DbSet<FutureCreator> FutureCreators => Set<FutureCreator>();
|
||||
public DbSet<UserTransaction> UserTransactions => Set<UserTransaction>();
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder builder)
|
||||
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>, IApplicationDbContext
|
||||
{
|
||||
base.OnModelCreating(builder);
|
||||
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
|
||||
: base(options)
|
||||
{
|
||||
}
|
||||
|
||||
// Relationship between ApplicationUser and UserTransaction
|
||||
builder.Entity<UserTransaction>()
|
||||
.HasOne<ApplicationUser>()
|
||||
.WithMany()
|
||||
.HasForeignKey(ut => ut.ApplicationUserId)
|
||||
.IsRequired();
|
||||
public DbSet<FutureCreator> FutureCreators => Set<FutureCreator>();
|
||||
public DbSet<UserTransaction> UserTransactions => Set<UserTransaction>();
|
||||
|
||||
builder.Entity<UserTransaction>().Property(x => x.Amount).HasPrecision(18, 2);
|
||||
|
||||
builder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly());
|
||||
protected override void OnModelCreating(ModelBuilder builder)
|
||||
{
|
||||
base.OnModelCreating(builder);
|
||||
|
||||
// Apply configurations
|
||||
builder.ApplyConfiguration(new UserTransactionConfiguration());
|
||||
builder.ApplyConfiguration(new ApplicationUserConfiguration());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
using Hutopy.Infrastructure.Identity;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
|
||||
namespace Hutopy.Infrastructure.Data.Configurations;
|
||||
|
||||
public class ApplicationUserConfiguration : IEntityTypeConfiguration<ApplicationUser>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<ApplicationUser> builder)
|
||||
{
|
||||
// Relationship between ApplicationUser and SocialNetworks
|
||||
builder
|
||||
.OwnsOne(u => u.SocialNetworks)
|
||||
.ToTable($"{nameof(ApplicationUser)}_SocialNetworks");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using Hutopy.Domain.Entities;
|
||||
using Hutopy.Infrastructure.Identity;
|
||||
|
||||
namespace Hutopy.Infrastructure.Data.Configurations
|
||||
{
|
||||
public class UserTransactionConfiguration : IEntityTypeConfiguration<UserTransaction>
|
||||
{
|
||||
public void Configure(EntityTypeBuilder<UserTransaction> builder)
|
||||
{
|
||||
// Relationship between ApplicationUser and UserTransaction
|
||||
builder.HasOne<ApplicationUser>()
|
||||
.WithMany()
|
||||
.HasForeignKey(ut => ut.ApplicationUserId)
|
||||
.IsRequired();
|
||||
|
||||
builder.Property(x => x.Amount).HasPrecision(18, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user