0
我正在使用NHibernate並希望從數據庫視圖加載單個字段到我的模型中。這是的情況:使用NHibernate從數據庫視圖加載數據
我有一個USERS表,其中有一列名爲AVATAR_ID。數據庫中還有一個名爲VIEW_RESOURCES的獨立視圖。該視圖包含一個ID和一個PATH列。該ID可以與存儲在AVATAR_ID列中的值相匹配。
在SQL我會做以下幾點:
select U.ID, U.USERNAME, R.PATH
from USERS U
left join VIEW_RESOURCES R on R.ID = U.AVATAR_ID
where U.ID = ...
我已經定義了一個模型的屬性在我的C#代碼如下:
public virtual Id { get; protected set; }
public virtual string UserName { get; set; }
public virtual string AvatarPath { get; protected set; }
我使用FluentNHibernate爲該映射如下所示:
Table("USERS");
Id(x => x.Id).GeneratedBy.Identity().Column("ID");
Map(x => x.UserName).Column("USERNAME").Not.Nullable().Length(256);
用於加載單個用戶的代碼如下所示:
User user = session
.QueryOver<User>()
.Where(x => x.Id == id)
.SingleOrDefault();
到目前爲止好,但我需要知道的是:
- 如何定義的AvatarPath映射?
- 如何將VIEW_RESOURCES視圖的PATH列加載到我的User對象的AvatarPath屬性中?我寧願不加載它作爲與用戶有關係的單獨模型。如果可能的話,我希望它作爲用戶的財產。