mysql - ServiceStack.OrmLite:索引的自定义命名可以在代码中完成吗?
问题描述
(我正在运行 ServiceStack OrmLite 5.1.1)
我碰巧有一些名称很长的对象,并且在设置表时创建表现在会创建一个名称很长的表。当 OrmLite 尝试在一个列上创建索引时,它失败了:
无法创建表 co_BookingRecurring_RecurringBookingAdministrationGroup(类型 tWorks.Alfa.AlfaCommons.BookingRecurring.RecurringBookingAdministrationGroup):标识符名称“idx_co_bookingrecurring_recurringbookingadministrationgroup_deleted”太长
所以,我希望IndexAttribute
也包含一个构造函数,所以我可以更改它,它会改为idx_deleted
,但是没有这样的构造函数或我发现处理它的其他方式。
我找到了INamingStrategy接口和一些示例,但它们似乎不处理索引名称。
有没有办法处理这个问题,以便我可以正常使用 CreateTable?
解决方案
我在此提交中添加了对自定义索引名称的支持,这将允许您提供自定义索引名称以代替基于约定的索引名称,例如:
public class Table
{
[Index(Name = "idx_custom_name")]
public string Name { get; set; }
}
此更改可从 v5.1.1 开始,现在可在 MyGet 上使用。
推荐阅读
- python - 无法解析来自 IBM Watson Speech To Text 的 JSON 输出
- java - Spring Boot - 批量更新单独插入记录而不是批量插入
- jquery - 在 TypeScript 中安装 jQuery 时出错
- php - 根据复选框输入和文本输入自动添加 SQL 查询 - 尝试构建搜索过滤系统
- batch-file - ffmpeg 批处理文件疑难解答。带字幕硬编码的 mkv 到 mp4 转换
- jquery - 正则表达式替换除数字和小数位之外的所有内容
- gradle - gradle ear plugin - 自定义 jar 添加到 EAR 根文件夹
- amazon-web-services - 是否可以在 AWS lambda NetCore 上使用 OWIN 实施 oAuth 2.0?AWS lambda 支持 OWIN?
- javascript - 无法使用 Amplify ReactJs 从 S3 存储桶获取自定义元数据
- terminal - 为什么命令行中的scrapy shell试图自动完成我的命令并运行到下一行?