-
Notifications
You must be signed in to change notification settings - Fork 23
/
UserMap.cs
55 lines (53 loc) · 2.12 KB
/
UserMap.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using DataAccessLayer.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace DataAccessLayer.EntityMappers
{
public class UserMap : IEntityTypeConfiguration<User>
{
public void Configure(EntityTypeBuilder<User> builder)
{
builder.ToTable("users");
builder.HasKey(x => x.UserId)
.HasName("pk_user");
builder.Property(x => x.UserId)
.ValueGeneratedOnAdd()
.HasColumnName("user_id")
.HasColumnType("INT");
builder.Property(x => x.FirstName)
.HasColumnName("first_name")
.HasColumnType("NVARCHAR(100)")
.IsRequired();
builder.Property(x => x.FirstName)
.HasColumnName("last_name")
.HasColumnType("NVARCHAR(100)")
.IsRequired();
builder.Property(x => x.PhoneNumber)
.HasColumnName("phone_number")
.HasColumnType("BIGINT")
.IsRequired();
builder.Property(x => x.Password)
.HasColumnName("password")
.HasColumnType("NVARCHAR(100)")
.IsRequired();
builder.Property(x => x.Email)
.HasColumnName("email")
.HasColumnType("NVARCHAR(100)")
.IsRequired();
builder.HasOne(x => x.UserRoles)
.WithOne(x => x.User)
.HasForeignKey<User>(x => x.RoleId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("fk_user_user_roles");
builder.Property(x => x.CreatedDate)
.HasColumnName("created_date")
.HasColumnType("DATETIME");
builder.Property(x => x.ModifiedDate)
.HasColumnName("modified_date")
.HasColumnType("DATETIME");
builder.Property(x => x.IsActive)
.HasColumnName("is_active")
.HasColumnType("BIT");
}
}
}