gpt4 book ai didi

c# - 使用 MySql 的 Entity Framework : Map System. VARCHAR(40) 指南

转载 作者:行者123 更新时间:2023-11-29 20:26:59 26 4
gpt4 key购买 nike

我首先使用 Entity Framework 6 代码连接到 MySql 数据库。我不拥有该数据库。我无法更改数据库架构。我也无法更改为 Entity Framework 的另一种风格(首先是模型或数据库)。

我在将 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 for MySql 只会将 VARCHAR 列映射到 POCO 中的字符串字段。有什么方法可以告诉 Entity Framework “id”列应该从 VARCHAR(40) 转换为 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 新手。谢谢

最佳答案

我找不到办法做到这一点。我希望如果 VARCHAR(40) 无法解析为 Guid, Entity Framework 会抛出异常。 MySQL 提供商的情况并非如此。

我最终将我的 Id 成员声明为字符串。为了使我的 POCO 类成为真正的 POCO 类,我创建了一个辅助方法来将字符串转换为 Guid。

关于c# - 使用 MySql 的 Entity Framework : Map System. VARCHAR(40) 指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39258999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com