AyCode.Core/AyCode.Database/DbContexts/Users/AcUserDbContextBase.cs

37 lines
1.6 KiB
C#

using AyCode.Interfaces.Addresses;
using AyCode.Interfaces.Messages;
using AyCode.Interfaces.Profiles;
using AyCode.Interfaces.ServiceProviders;
using AyCode.Interfaces.Users;
using Microsoft.EntityFrameworkCore;
namespace AyCode.Database.DbContexts.Users
{
public abstract class AcUserDbContextBase<TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider, TProfileAddress, TEmailMessage> : AcDbContextBase, IAcUserDbContextBase<TUser, TProfile, TUserToken, TServiceProvider, TUserToServiceProvider, TProfileAddress, TEmailMessage>
where TUser : class, IAcUser<TProfile, TServiceProvider, TUserToServiceProvider, TProfileAddress>
where TProfile : class, IAcProfile<TProfileAddress>
where TUserToken : class, IAcUserTokenBase
where TServiceProvider : class, IAcServiceProviderBase
where TUserToServiceProvider : class, IAcUserToServiceProviderBase
where TProfileAddress : class, IAcAddress
where TEmailMessage : class, IAcEmailMessageBase
{
public required DbSet<TUser> Users { get; set; }
public required DbSet<TUserToken> UserTokens { get; set; }
public DbSet<TProfileAddress> Addresses { get; set; }
public DbSet<TProfile> Profiles { get; set; }
public DbSet<TEmailMessage> EmailMessages { get; set; }
protected AcUserDbContextBase() : this(string.Empty)
{ }
protected AcUserDbContextBase(string name) : base(name)
{ }
protected AcUserDbContextBase(DbContextOptions<DbContext> options, string name) : base(options, name)
{
}
}
}