I'm using Entity Framework with MySql extension on ASP.NET Core application. One of my domain model Message
have Guid property and when I want to execute any operation on my DbContext I'm receiving an error: The property 'Message.ID' is of type 'Guid' which is not supported by current database provider. Either change the property CLR type or manually configure the database type for it.
.
How do I "manually configure the database type'? I've read that it should be mapped for CHAR(36), but I couldn't find how to do that on application side.
@UPDATE
When I set the attribute [Column(TypeName = "char(32)")]
to the Guid
property, error remains.
This method also does not work
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var messageEntity = modelBuilder.Entity< Message>();
messageEntity.Property(x => x.ID).
HasAnnotation("Column", new { TypeName = "char(32)" });
}
I had this issue and I resolved that way:
I removed the MySql.Data.EntityFrameworkCore from my project
I installed Pomelo.EntityFrameworkCore.MySql by Nuget
and this
data provider mapped correctly the Guid
.
I changed my method name UseMySQL
to UseMySql
and added using Microsoft.EntityFrameworkCore;
at Startup.cs
:
services.AddDbContext<MyDbContext>(options =>
options.UseMySql(Configuration.GetConnectionString("MyContext")));
Remember to make sure the Guid
is data type char(36)
in the database.