gpt4 book ai didi

mysql - 如何在 MySql 数据库中使用 guid.comb 策略

转载 作者:行者123 更新时间:2023-11-29 04:14:09 37 4
gpt4 key购买 nike

是否可以使用 guid.comb 策略通过使用 Nhibernate 的 Mysql Db 进行身份生成?

当我使用它时

   mapping.Id(x => x.Id)
.Column("row_guid")
.CustomType(typeof(string))
.GeneratedBy.GuidComb()
.Length(36);

我最终得到了

----> System.InvalidOperationException : Identity type must be Guid

在MySql场景下有没有办法克服这个障碍?

编辑:
我在 guidint 之间没有选择。这是来自 MSSql 的旧数据库的端口

最佳答案

这是常见问题,尤其是在将 MSSql 应用程序移植到 MySql 时。
正如 David 所说,实现一个简单的 CustomIdGenerator,它是 GuidCombGenerator 的包装器。这为您提供了字符串形式的 Guid。

using NHibernate.Engine;
using NHibernate.Id;

namespace NHibernateMaps
{
public class GuidStringGenerator : IIdentifierGenerator
{
public object Generate(ISessionImplementor session, object obj)
{
return new GuidCombGenerator().Generate(session, obj).ToString();
}

}
}

并在映射中将其指定为

 mapping.Id(x => x.Id)
.Column("row_id")
.CustomType(typeof(string))
.GeneratedBy.Custom(typeof(GuidStringGenerator))
.Length(36);

关于mysql - 如何在 MySql 数据库中使用 guid.comb 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1995579/

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