C# 如何创建与ninject一起使用的通用nhibernate存储库?
我正在尝试创建我的第一个通用存储库。我从真正简单的开始,但我不确定如何将它连接到ninject并通过构造函数注入使用它C# 如何创建与ninject一起使用的通用nhibernate存储库?,c#,nhibernate,generics,ninject,ninject-2,C#,Nhibernate,Generics,Ninject,Ninject 2,我正在尝试创建我的第一个通用存储库。我从真正简单的开始,但我不确定如何将它连接到ninject并通过构造函数注入使用它 public class NhibernateRepo<T> : INhibernateRepo<T> { private readonly ISession session; public NhibernateRepo(ISession session) { thi
public class NhibernateRepo<T> : INhibernateRepo<T>
{
private readonly ISession session;
public NhibernateRepo(ISession session)
{
this.session = session;
}
public void Commit()
{
using (ITransaction transaction = session.BeginTransaction())
{
transaction.Commit();
}
}
public void Delete(T entity)
{
session.Delete(entity);
}
public void Update(T entity)
{
session.Update(entity);
}
public T Get(object id)
{
return session.Get<T>(id);
}
public T Load(object id)
{
return session.Load<T>(id);
}
public void ReadOnly(object entity, bool readOnly = true)
{
session.SetReadOnly(entity, readOnly);
}
public void Evict(object entity)
{
session.Evict(entity);
}
public object Merge(object entity)
{
return session.Merge(entity);
}
}
public interface INhibernateRepo<T>
{
void Commit();
void Delete(T entity);
void Update(T entity);
T Get(object id);
T Load(object id);
void ReadOnly(object entity, bool readOnly = true);
void Evict(object entity);
object Merge(object entity);
}
}
但它不喜欢这样,所以我尝试了
public MyServiceLayer(INhibernateRepo<T> nhibernateRepo)
public MyServiceLayer(INhibernateRepo-nhibernateRepo)
但它找不到T
那我该怎么做呢?我猜做绑定也是一个挑战,所以我不确定如何做。尝试将
从接口级别移动到方法级别。像这样:
public void Delete<T>(T instance) ...
public void Delete(T实例)。。。
public void Delete<T>(T instance) ...