我在ASP.NET Core應用程序上使用實體框架和MySql擴展。我的一個域模型Message
具有Guid屬性,當我想對我的DbContext執行任何操作時,我收到一個錯誤: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.
。關於Mysql實體框架的Guid屬性
如何「手動配置數據庫類型'?我讀過,它應該被映射爲CHAR(36),但我找不到怎麼做,在應用端。
@UPDATE
當我的屬性[Column(TypeName = "char(32)")]
設置爲Guid
財產,錯誤仍然存在。
這種方法也行不通
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var messageEntity = modelBuilder.Entity< Message>();
messageEntity.Property(x => x.ID).
HasAnnotation("Column", new { TypeName = "char(32)" });
}
您應該在DB和EF字符串中使用'char(32)'或更寬的字段來存儲GUID。您可以使用EF更新數據庫嚮導來更新表格,也可以手動更改EF db XML文件。將guid更改爲字符串,並將表結構更改爲char(36)。 –
有沒有什麼辦法可以將Guid定義爲MySql的'char(32)'或'binary(16)'?所以我可以在沒有任何包裝的情況下使用Guid。 – Erexo