btcpayserver/BTCPayServer.Data/Data/UserStore.cs

46 lines
1.5 KiB
C#
Raw Normal View History

2023-05-26 16:49:32 +02:00
using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;
2017-09-13 08:47:34 +02:00
namespace BTCPayServer.Data
{
public class UserStore
{
public string ApplicationUserId { get; set; }
public ApplicationUser ApplicationUser { get; set; }
public string StoreDataId { get; set; }
public StoreData StoreData { get; set; }
2023-05-26 16:49:32 +02:00
[Column("Role")]
public string StoreRoleId { get; set; }
public StoreRole StoreRole { get; set; }
2017-09-13 08:47:34 +02:00
internal static void OnModelCreating(ModelBuilder builder)
{
builder.Entity<UserStore>()
.HasOne(o => o.StoreData)
.WithMany(i => i.UserStores).OnDelete(DeleteBehavior.Cascade);
builder.Entity<UserStore>()
.HasKey(t => new
{
t.ApplicationUserId,
t.StoreDataId
});
builder.Entity<UserStore>()
.HasOne(pt => pt.ApplicationUser)
.WithMany(p => p.UserStores)
.HasForeignKey(pt => pt.ApplicationUserId);
builder.Entity<UserStore>()
.HasOne(pt => pt.StoreData)
.WithMany(t => t.UserStores)
.HasForeignKey(pt => pt.StoreDataId);
2023-05-26 16:49:32 +02:00
builder.Entity<UserStore>().HasOne(e => e.StoreRole)
.WithMany(role => role.Users)
.HasForeignKey(e => e.StoreRoleId);
}
}
2017-09-13 08:47:34 +02:00
}