休眠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;
  }
    

要回复问题请先登录注册