2010-05-01 157 views
0

我重寫應用程序從ASP.NET到Silverlight和使用NHibernate的在我的DB 2 表看起來是這樣的: alt text http://img268.imageshack.us/img268/4940/tablesqp.jpg問題NHibernate的映射表

在Dziecko表我有參考Opiekun和Grupy的ID 。在ASP中,對我來說沒問題,但在視頻夏天與NHibernate我看到斯蒂芬博倫交換使用這種類型的對象,對我來說它的Opiekun和Grupy.But在SQL Server中我不能定義對象類型,所以更好的是地圖只有這個編號[我會問問題查詢編號]和或其他東西?使用特定類型的所有對象是效率?我們必須查詢所有交換的對象只有int類型的id的??

回答

1

(我希望我理解正確你的問題。)

在數據庫中的關係數據庫類型總是定義,可能無論是在int或外鍵列的情況下,uniqueidentifer。數據庫不應該知道NHibernate返回給你的應用程序代碼的數據傳輸對象。

當您使用ManyToOne等映射數據傳輸對象中的外鍵列時,您指定對象的類型,因爲NHibernate知道該關係總是在您在屬性中指定的外鍵列之間,以及要返回的對象類型的Id(主鍵)。這爲您節省了額外查詢返回父實體或子實體的麻煩--NHibernate自動爲您執行JOIN,並將關係信息作爲對象層次結構返回,而不僅僅是一組id值。