2
如何使用Fluent NHibernate加載完整的對象(其中所有asociated對象)?在這種情況下,該對象被命名爲「項目」並具有關聯的類別和圖片列表。映射文件是這樣的:加載完整的對象與流利NHibernate
public ProjectMap()
{
Id(x => x.Id);
Map(x => x.Title).Not.Nullable();
Map(x => x.Year);
Map(x => x.Slug).Not.Nullable();
Map(x => x.Description).CustomSqlType("nvarchar(MAX)").Not.Nullable();
References(x => x.Category, "CategoryId").Not.Nullable();
HasMany(x => x.Gallery)
.Inverse()
.Cascade.All();
}
和存儲庫方法應該返回完整的對象:
public Project Read(int id)
{
using (var session = NHibernateHelper.OpenSession())
{
var project = session.CreateQuery("FROM Project WHERE Id = :Id LEFT JOIN FETCH p.Category LEFT JOIN FETCH p.Gallery")
.SetParameter("Id", id).UniqueResult<Project>();
return project;
}
}
我已經使用了「.CreateQuery(」FROM Project WHERE Id =:Id LEFT JOIN FETCH p.Category LEFT JOIN FETCH p.Gallery「) .SetParameter(「Id」,id).UniqueResult();「但它不起作用..我仍然得到錯誤「正在初始化[Model.Entities.Category#1] - 不能初始化代理 - 沒有會話。」 –
Ante
2012-02-10 12:26:13
但與INNER JOIN .. tnx求助。 – Ante 2012-02-13 11:03:09