【发布时间】:2019-09-10 06:19:37
【问题描述】:
我遇到了一个在这里多次讨论过的问题,但不幸的是,没有一个答案或提示对我有用。
我想使用不同的自定义类型(例如货币或记录链接)。
在数据库中,我会将这些自定义类型的不同属性存储到多个列中(例如 Money:YearlyIncome.Amount、YearlyIncome.CurrencyCode)。
我发现的所有提示都试图在查询中使用“spliton”来解决问题。 但我更喜欢使用类型处理程序的解决方案,因此我不必手动将其添加到每个查询中。
我已经尝试使用属性之间的一种分隔符将信息存储在单个数据库列中。这基本上可以使用自定义类型处理程序正常工作 - 但最后的数据库看起来“丑陋”。
public class Recordlink
{
public Guid Id { get; set; }
public string Type { get; set; }
public string Name { get; set; }
...
}
public class Money
{
public decimal Amount { get; set; }
public string CurrencyCode { get; set; }
...
}
public class Contact
{
Guid Id {get;set;}
Money YearlyIncome {get;set;}
Recordlink Company {get;set;}
}
我希望在查询联系人列表时实现这一点,例如,我只能访问属性contacts[0].Company.Id(当然还有之前的NULL 检查)。
由于对类似问题有太多不同的提示和答案,我不确定这是否可能。
但即使这不可能如我所愿 - 我更愿意知道这一点,而不是寻找解决方案的年龄。
感谢和问候
马库斯
【问题讨论】:
标签: c# multiple-columns dapper custom-type typehandler