FastMember列顺序保存
本文关键字:保存 顺序 FastMember | 更新日期: 2023-09-27 18:18:04
使用TypeAccessor时。Create FastMember似乎总是返回一个按字母顺序排序的列列表。是否有可能告诉它保留类中列的顺序?
例如:var testClass = new { B = "1", A = "2" };
将从GetMembers返回列A然后B,如果可能的话,我想让它保留B然后A的顺序。
我创建了这个项目的一个带有列顺序选项的分支,并在原始存储库中添加了一个PR。添加OrdinalAttribute
以指定列的顺序。
序号属性可以如下所示使用:
public class ObjectReaderWithDefinedColumnsOrderType
{
[Ordinal(1)]
public byte C { get; set; }
[Ordinal(0)]
public int? D { get; set; }
}
-
ObjectReader.Create()
中返回的IDataReader
对象将按照定义的属性排列列。 - 如果源类中没有定义该属性,则按字母顺序使用。
- 如果两个字段具有相同的Ordinal值,则使用字母顺序。
- 如果属性仅为某些属性定义,则列按序数值排序,然后按字母顺序排序(没有属性的属性被认为是
-1
序数)。
您可以立即使用my for,也可以等到PR与原始存储库合并后再使用。
看起来Evk是对的,它不能真正通过标准api完成。为了完整起见,我将把这个作为答案。