Files
admin/Azaion.Common/Database/AzaionDbShemaHolder.cs
T
Alex Bezdieniezhnykh 4bc76bbbac structure app by rest api standards
add getusers
tidy up BusinessException
2024-11-14 22:45:36 +02:00

35 lines
1.0 KiB
C#

using Azaion.Common.Entities;
using Azaion.Common.Extensions;
using LinqToDB;
using LinqToDB.Mapping;
namespace Azaion.Common.Database;
public static class AzaionDbSchemaHolder
{
public static readonly MappingSchema MappingSchema;
static AzaionDbSchemaHolder()
{
MappingSchema = new MappingSchema();
MappingSchema.EntityDescriptorCreatedCallback = (_, entityDescriptor) =>
{
foreach (var entityDescriptorColumn in entityDescriptor.Columns)
entityDescriptorColumn.ColumnName = entityDescriptorColumn.ColumnName.ToSnakeCase();
};
var builder = new FluentMappingBuilder(MappingSchema);
builder.Entity<User>()
.HasTableName("users")
.Property(x => x.Id)
.IsPrimaryKey()
.HasDataType(DataType.Guid)
.Property(x => x.Role)
.HasDataType(DataType.Text)
.HasConversion(v => v.ToString(), v => (RoleEnum)Enum.Parse(typeof(RoleEnum), v));
builder.Build();
}
}