我的app实体内部由字符串键标识 - 其ID的baseN表示形式
xAdWzC
,它是数字标识的BaseN(52)表示。
数字Id是在插入之前使用类似于oracle序列算法生成的(我的自定义id生成器)。
如何映射我的类,它基本上有2个Id的表示形式,要保存在db中,其中2列是一个数字 - 主键,另一个 - 用于标识db中的行的字符串键更好?我显然不需要2个主键,而且更喜欢数字PK。
字符串键只是一个包含C#中数字键的属性,就像这个
一样public string Key
{
get { return BaseNFunction(Id); }
}
基本上我希望这种映射是db的一种方式。当从db加载项时,必须完全忽略该列。
NHB映射怎么样? 问题是困难的还是没有发现?我不认为它值得赏金,但请帮助我。
答案 0 :(得分:2)
只需将生成的属性设为readonly(在XML中为access="readonly"
;以流畅的方式查找类似的内容)
在这种情况下只读意味着从实体读取属性并写入数据库,但不是相反
答案 1 :(得分:0)
将数字键设为主键。这将自动为其提供唯一约束和索引。然后使您的字符串键列显式为具有唯一约束的常规列。如果您打算通过它进行查找,请不要忘记在字符串列中添加索引。