我有一个遗留系统,可以在需要时动态地用额外的列来扩充一个表。现在我想通过 C#/NHibernate 访问该表。
无法更改遗留系统的行为,我需要动态处理附加列中的数据。因此,动态组件映射不是一个选项,因为我不知道附加列的确切名称。
有没有办法将所有未映射的列放入字典(列名作为键)?或者,如果这不是一个选项,将所有列放入字典中?
同样,我在编译时不知道列的名称,所以这必须是完全动态的。
例子:
public class History
{
public Guid Id { get; set; }
public DateTime SaveDateTime { get; set; }
public string Description { get; set; }
public IDictionary<string, object> AdditionalProperties { get; set; }
}
因此,如果表 History 包含列Id、SaveDateTime、Description、A、B、C和D我想在 IDictionary 中有“A”、“B”、“C”和“D”。或者,如果这太难了,只需将所有列都扔在那里。
对于初学者来说,如果有帮助的话,我也可以只使用字符串列。