我无法设置Fluent NHibernate HasMany系列。
我已将代码设置如下,我通过Linq IQueryable调用它。 在SQL事件探查器中,我可以看到正在调用的SQL,但Store.Staff集合始终为空。
public class Store
{
public virtual IList<Employee> Staff { get; set; }
public virtual void AddEmployee(Employee Employee)
{
Employee.Store = this;
if(Staff == null)
Staff = new List<Employee>();
Staff.Add(Employee);
}
public class StoreMap : ClassMap<Store>
{
public StoreMap()
{
Id(x => x.StoreId)
.GeneratedBy.Identity();
HasMany(x => x.Staff)
.Inverse()
.Cascade.All();
...
}
}
public bool Create(Store entity)
{
var stores = _readRepository.Query<Store>()
.Where(x => x.StoreId == entity.StoreId)
.Fetch(x => x.Staff)
.ToList();
select store0_.StoreId,
staff2_.SurgeryId,
staff2_.StoreId
from dbo.[Store] store0_
left outer join dbo.[Employee] staff2_
on store0_.StoreId = staff2_.StoreId
where store0_.StoreId = 1 /* @p0 */
感谢您的帮助。
答案 0 :(得分:0)
不确定这是不是问题,但你应该使用FetchMany来急切地加载集合,而不是Fetch。
答案 1 :(得分:0)
我混淆了框架的两个部分。我正在使用Linq来检索数据而无法急切加载。 我现在使用NHibernate.Session.QueryOver。
而不是使用Linq