2009-02-20 41 views
0

插入/选择记录我有这些表:NHibernate的映射,基于独特的非主键

创建表的品牌 ( ID INT标识(1,1), 名称为varchar(100)NOT NULL唯一, 主键集群(ID) )

创建表的产品 ( ID INT标识(1,1), 名称为varchar(100)NOT NULL, BrandID诠释不是空引用品牌(ID) )

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

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

回答

1

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