NHibernate映射基于唯一的非主键插入/选择记录

时间:2009-02-20 23:01:54

标签: nhibernate

我有这些表格:

创建表品牌 (     ID int identity(1,1),     名称varchar(100)非null唯一,     主键群集(ID) )

创建表格产品 (     ID int identity(1,1),     名称varchar(100)不为null,     BrandID int非null引用品牌(ID) )

我在c#中有各自的实体,即Brand实体有一个int ID和一个String Name,而Product实体有int ID,string Name,Brand Brand。

如何定义映射,以便在创建新的Product模型时,设置其名称,并在其名称上设置新的Brand模型,当我调用ISession.SaveOrUpdate时,它将首先使用品牌名称检查是否那条记录存在吗?如果我将Brand上的ID设置为标识,即使名称已经存在,它也会尝试插入记录,因为我没有明确检查记录是否存在。如果我将名称设置为标识,那么它不会认为它需要在第一时间插入。我可以事先明确检查品牌是否存在,但我正在寻找一种可以自动执行此操作的映射。有些东西允许我指定品牌的身份应该通过其名称进行验证,但是0 ID表示它的新名称。

1 个答案:

答案 0 :(得分:1)

这不能通过映射完成,因为它不是映射问题。