![](/img/trans.png)
[英]EF Core DB first mapping PostgreSQL bit(1) column as BitArray instead of bool
[英]How to mapping enum in postgresql (db first) with ef core on .net core
我正在編寫一個記錄我得到的異常的中間件。
我在 postgresql 上創建了枚舉值
並將其映射到我的日志表
我的日志 model 是:
public class Log
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[JsonIgnore]
public int Id { get; set; }
public EventType EventType { get; set; }
public string Description { get; set; }
public DateTime CreatedAt { get; set; }
}
我的錯誤中間件是:
var log = new Log();
log.Description = ex.Message;
log.EventType = EventType.Exception;
log.CreatedAt = DateTime.Now;
Context.Add(log);
Context.SaveChanges();
(這即將出現在界面上,但我想盡快展示)
我的背景:
protected override void OnModelCreating(ModelBuilder model)
{
model
.HasPostgresEnum(null, "event_type", new[] { "info", "unknown", "warning", "exception" });
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseNpgsql(Configuration.GetConnectionString("MyConnection"))
.UseCamelCaseNamingConvention();
NpgsqlConnection.GlobalTypeMapper.MapEnum<EventType>("enum_logs_eventType");
}
我認為我做的一切都是正確的。 它是 DB First,所以我遷移了數據庫,但我認為您在那里執行了相同的步驟。
當我運行服務並觸發任何錯誤時,我收到此錯誤:
When I try to cast to string or run .HasConversion or something i get this error:
Posthresql 枚舉值區分大小寫。 因此,當我刪除枚舉並再次修復它們(它們都是小寫字母)時,錯誤得到了解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.