📖
EF Core で MySQL の UUID_TO_BIN, BIN_TO_UUID と同じフォーマットにするメモ
EF Core のデフォルトの GuidToBytesConverter はリトルエンディアンなので MySQL の UUID_TO_BIN 及び BIN_TO_UUID とフォーマットが一致しない。
ref: https://bugs.mysql.com/bug.php?id=105142
なので以下の様な ValueConverter
作ってフォーマット合わせるようにする
public class MySqlUuidConverter: ValueConverter<Guid, byte[]>
{
public MySqlUuidConverter() : base(
v => v.ToByteArray(true),
v => new Guid(v, true)
) { }
}
使い方
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Hoge>(entity => {
entity.Property(e => e.HogeId)
.HasConversion<MySqlUuidConverter>();
});
}
ref: https://learn.microsoft.com/ja-jp/ef/core/modeling/value-conversions
Discussion