我认为这是一个适度的新手问题。我一直在使用NHibernate/FluentNHibernate大约6个月左右,我想我对基础知识有一个很好的把握。现在我正在推动一点点。我确信这是有记录的,但我已经在谷歌上花了几个小时,而且还没有弄明白。流利的NHibernate一对一地加入表格
我有简单的类,把它简单:
public class Simple
{ public string Name { get; set;}
public string Desc { get; set; }
public string Status { get; set;}
}
状态实际上是被限制为一小组值之一:“活动”,“保持”和“关闭”。在DB模式,我有一个名为RetrofitStatus一个简单的只读表:
CREATE TABLE [dbo].[RetrofitStatus](
[Status] [nvarchar](10) NOT NULL,
[SortOrder] [smallint] NOT NULL,
CONSTRAINT [PK_RetrofitStatus] PRIMARY KEY CLUSTERED
(
[Status] ASC
)
并有一个外键约束在简单的表,以确保状态是RetrofitStatus。
的RetrofitStatus表的目的是为包括SortOrder的列,这样我可以做到(在SQL)
SELECT * from Simple s join RetrofitStatus r on r.Status=s.Status ORDER BY r.SortOrder
和我的结果(例如,所有的活动条目,然后再进行排序成显示顺序-HOLD条目,然后是CLOSED条目,因为我按逻辑顺序进行排序,而不是按字母顺序排序或其他任何轻松识别)。
我的问题是,我如何建模FNH中的对象和关系?我可以将SortOrder属性添加到我的Simple定义中,并创建一个表示该表示的View,但是当我尝试向表中插入新的Simple对象时会发生什么?显然,我不想尝试插入SortOrder属性。我认为我需要以某种方式使用NHib元素,但是我不清楚需要去哪里,插入内容会发生什么,以及如何在Fluent中执行此操作?
我要尝试试验一下试错法,但我想也许有人知道他们在做什么(我不知道)可以指引我走向正确的方向并为我节省一些时间。谢谢你的帮助。