我正在尝试使用以下代码从NHibernate获取Wrapper:
public Wrapper GetWrapper(int siteId, string actionName)
{
Wrapper wrapper = _session.CreateCriteria<Wrapper>()
//.Add(SqlExpression.Like<Wrapper>(xx => xx.SiteId, siteId))
.Add(SqlExpression.Equals(xx => xx.SiteId, siteId))
.Add(SqlExpression.Like<Wrapper>(xx => xx.Action, actionName))
.List<Wrapper>().FirstOrDefault();
return wrapper;
}
注释掉的一点:
.Add(SqlExpression.Like<Wrapper>(xx => xx.SiteId, siteId))
效率低下。我需要将Wrapper放在Wrapper.SiteId == siteId的位置,而不是Like
siteId。我应该注意siteId不是主键。有人可以告诉我,我可以做些什么来改善这个?感谢
答案 0 :(得分:0)
这有效:
public Wrapper GetWrapper(int siteId, string actionName)
{
Wrapper wrapper = _session.CreateCriteria<Wrapper>()
.Add<Wrapper>(x => x.SiteId == siteId)
.Add<Wrapper>(x => x.Action == actionName)
.List<Wrapper>().FirstOrDefault();
return wrapper;
}