Initial project
This commit is contained in:
56
src/Data/Models/UserPasskey.cs
Normal file
56
src/Data/Models/UserPasskey.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
|
||||
namespace SoaFE.Portal.Data.Models;
|
||||
|
||||
public sealed class UserPasskey : IdentityUserPasskey<long>, IEntityTypeConfiguration<UserPasskey>
|
||||
{
|
||||
#region Scalar Properties
|
||||
|
||||
[MemberNotNull(nameof(User))]
|
||||
public override required long UserId { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Navigation Properties
|
||||
|
||||
public User User { get; internal set; }
|
||||
|
||||
#endregion
|
||||
|
||||
public void Configure(EntityTypeBuilder<UserPasskey> builder)
|
||||
{
|
||||
// Configure Table
|
||||
builder.ToTable("user_passkey");
|
||||
builder.HasKey(e => new
|
||||
{
|
||||
e.UserId,
|
||||
e.CredentialId
|
||||
})
|
||||
.HasName("pk_user_passkey");
|
||||
builder.HasIndex(e => e.UserId)
|
||||
.HasDatabaseName("ix_user_passkey_user_key");
|
||||
|
||||
// Configure Columns
|
||||
var order = 0;
|
||||
builder.Property(e => e.UserId)
|
||||
.HasColumnName("user_key")
|
||||
.HasColumnOrder(order++);
|
||||
builder.Property(e => e.CredentialId)
|
||||
.HasMaxLength(256)
|
||||
.IsUnicode()
|
||||
.HasColumnName("credential_id")
|
||||
.HasColumnOrder(order++);
|
||||
|
||||
// Configure Relationships
|
||||
builder.OwnsOne(e => e.Data, Configure);
|
||||
}
|
||||
|
||||
internal static void Configure(OwnedNavigationBuilder<UserPasskey, IdentityPasskeyData> builder)
|
||||
{
|
||||
builder.ToJson("data");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user