在应用程序中,我有一堆实体类NHibernate映射,它有两个常见属性:{GUID Id,string Tag}(它是通过抽象基类实现的)。
在DB中,每个实体都有表格,其中包含公共列:
dbo.[EntityName] { uniqueidentifier Id, ... etc. }
还有一个表存储有关每个实体的某些全局标记的信息:
dbo.EntityTag { uniqueidentifier Id, nvarchar Tag }
此表格是严格需要的,必须在Db。
中使用如何实现自定义SQL逻辑以在Tag属性中更新,选择和插入值?
例如在FluentNhibernate中有类似
的内容会很有帮助Map(x => x.Tag)
.Insert("INSERT dbo.EntityTag VALUES({Id},{Tag})")
.Update("UPDATE dbo.EntityTag SET Tag={Tag} WHERE Id = {ID}")
.SELECT("...")
.Delete("... etc")
答案 0 :(得分:0)
从形式上讲,您可以使用实体持久性的自定义实现来完成它。
但是,在这种情况下,使用<join>
映射似乎更容易。