如何解决休眠queryover.where错误
| 我最近开始与nhibernate一起玩,并且目前正在尝试实现一个通用功能,该功能在数据库中搜索具有特定名称的条目: public T FindName<T>(string name) where T : class
{
T obj;
using (ISession session = m_SessionFactory.OpenSession())
{
obj = session.QueryOver<T>()
.Where(x => x.Name == name).SingleOrDefault();
}
return obj;
}
问题是我对\“。Where(x => x.Name == name)\”语句提出了投诉:\“ Delegate \'System.Func \'没有1个参数\”。从我在网上看到的情况来看,这种说法经常被使用,我不确定自己在做什么错。
如果您有任何想法请告诉我。
非常感谢。
解决方法
您需要确保可以在T类型的x上调用Name。
这可以通过使接口具有属性名称,类型字符串并指定...来实现。
其中T:class,INameable
这是一些代码:
interface INameable
{
string Name { get; }
}
class MyClass
{
ISessionFactory m_SessionFactory;
public T FindName<T>(string name) where T : class,INameable
{
T obj;
using (ISession session = m_SessionFactory.OpenSession())
{
obj = session.QueryOver<T>()
.Where(x => x.Name == name).SingleOrDefault();
}
return obj;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。