IQueryable
I got formを具体化しようとすると、かなり奇妙な例外が発生しNHibernate.Linq
ます。タイプの例外はAntlr.Runtime.Tree.RewriteEmptyStreamException
ただ述べているだけplan b
で、それ以上のものはありません。詳細な例外はhttp://pastebin.com/kR2dvDHdで見つけることができます
例外をスローするコードは次のとおりです。
var matterExtractor = new MatterExtractor();
var InactiveMatters = matterExtractor.GetMattersAtStatus(General.InactiveMatterStatus);
Assert.IsNotNull(InactiveMatters); //OK
Assert.IsInstanceOfType(InactiveMatters, typeof (IQueryable<Matter>)); // OK
var MaterializedMatters = InactiveMatters.ToList(); //Exception is thrown
Matter Extractorクラスは、次のように単純です。
public class MatterExtractor
{
public virtual IQueryable<Matter> GetMattersAtStatus(MatterStatus status)
{
return
(new NHibernateRepository.Repository<Matter>()).Where(
m => m.MatterStatusHistories.OrderByDescending(msh => msh.CreateTime).FirstOrDefault().MatterStatus == status);
}
}
NHibernateRepository.Repository<T>
NHibernate.LINQ
は、への拡張メソッドを介してIQueryableを実装するユーティリティクラスですNHibernate.Session
。ここでは特に何もありませんが、念のため、ここにリストがあります:http: //pastebin.com/MgDxDg3Y
Matter
エンティティと相互作用する他のテストは問題なく実行されるため、NHibernateマッピングに関連しているとは思いません。おそらくそれは条項に関連していWhere
ますが、その条項の何が問題になっているのか理解できません。交換してみました
OrderByDescending(msh => msh.CreateTime).FirstOrDefault()
に
OrderBy(msh => msh.CreateTime).LastOrDefault()
でもそれは私に言っただけなThe LastResultOperator result operator is not current supported
ので、私はNHibernate.Linq
ただとどまることができないと思いますLastOrDefault
。
どういうplan b
意味ですか、どうすれば回避できますか?