我首先使用Entity Framework 6代碼連接到MySql數據庫。我不擁有數據庫。我不能更改數據庫架構。我也不能改變爲另一種實體框架(首先是模型或數據庫)。使用MySql的實體框架:將System.Guid映射到VARCHAR(40)
我無法映射我POCO對象特定表
表如下:
CREATE TABLE 'my_table' (
'id' VARCHAR(40) NOT NULL,
'name' VARCHAR(200),
Primary Key ('id')
)
我知道一個事實,即「ID」列將永遠是一個GUID 。因此,我創建了我的POCO類,如下所示:
public class MyTable
{
public Guid Id { get; set;}
public string Name { get; set;}
}
從我的理解EF爲MySQL將僅VARCHAR列映射到你的POCO字符串字段。有什麼辦法可以告訴實體框架,'id'列應該從VARCHAR(40)轉換爲Guid?
我在考慮接受我無法映射到Guid。我只是映射到一個字符串並創建一個自定義getter方法:
public class MyTable
{
public string Id { get; set;}
public string Name { get; set;}
public Guid GetId()
{
Guid id;
if (Guid.TryParse(this.Id, out id))
return id;
else
return new Guid();
}
}
請幫助一個EF newb。謝謝