Unable to create a ‘DbContext’ of type ‘’. The exception ‘Cannot set default value ‘1’ of type ‘System.Int32’ on property ‘UserAuthority’ of type ‘wms_api.Models.Enums.UserAuthority’ in entity type ‘UserAuthorityEntity’.’ was
thrown while attempting to create an instance. For the different patterns supported at design time, see Design-time DbContext Creation - EF Core | Microsoft Learn
해당 오류가 발생합니다.
HasConversion로 int형으로 변환해서 문제가 없을거라 생각했는데 문제가 발생하여 이곳저곳에서 검색해보아도 도저히 답을 모르겠어서 여기에 질문드리게 되었습니다.
public class UserAuthorityEntity
{
// ...
public UserAuthority UserAuthority {get; set;} = UserAuthority.General;
// ...
}
모델 Configuration 은 컨벤션을 숙지하고 나서, 컨벤션을 따르지 않는 경우에만 적용하는 게 좋습니다.
builder.ToTable("user_authorities");
builder.Property(userAuthority => userAuthority.UserAuthority)
.HasConversion(
// instance type to DB compatible CLR type
obj => obj.ToString(),
// DB compatible CLR type to instance type
str => Enum.Parse(typeof(UserAuthority), str)
)
;