我有这个问题:
IList<Table1_name> ries = session.CreateQuery("from Table1_name where param1 = '30001'").List<Table1_name>>();
string s = ries[0].foo[0].someAttribute;
在TABLE1和TABLE2之间是多对多的关联,TABLE3是一个联结表。 表示TABLE1和TABLE2的类包含:
Table1_name.cs:public virtual IList<Table2_name> foo { get; set; }
Table2_name.cs:public virtual IList<Table1_name> foo { get; set; }
问题是它总是返回一个EMPTY IList foo,尽管数据库中有数据。
NHibernate探查器的输出看起来是正确的:
SELECT
...
p.someAttribute as nazov5_0_,
...
FROM TABLE3 r
left outer join TABLE2 p
on r.id = p.id
WHERE r.param1 = 30001 /* :p0 */
and ...[others conditions are also ok]
但显示行数是0.当我把它放在sql命令器中时,它会返回正确的数据!
我需要一些提示,在哪里寻找问题。是否可以由nhibernate映射中的任何错误引起?但是它没有返回任何映射异常..找到属性,其他一切都有效,只有这个IList的Count在每种情况下都是0 ..