Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate存储库_C#_.net_Nhibernate_Repository Pattern - Fatal编程技术网

C# NHibernate存储库

C# NHibernate存储库,c#,.net,nhibernate,repository-pattern,C#,.net,Nhibernate,Repository Pattern,有没有人在NHibernate存储库上有适当且简化的记录? 我已经将Java、Hibernate、LCD数据服务存储库与FlexBuilder一起使用(使用rtmp通道),并希望使用C#.NET实现确切的基本功能 我已经阅读了大量的在线文档,但没有任何内容能像FlexBuilder那样反映出确切的用途 如果有人有一个小的示例应用程序,那么一定要分享。那会很有帮助的 问候 镍钛参见以下内容: 首先创建一个接口IRepository: public interface IRepository

有没有人在NHibernate存储库上有适当且简化的记录? 我已经将Java、Hibernate、LCD数据服务存储库与FlexBuilder一起使用(使用rtmp通道),并希望使用C#.NET实现确切的基本功能

我已经阅读了大量的在线文档,但没有任何内容能像FlexBuilder那样反映出确切的用途

如果有人有一个小的示例应用程序,那么一定要分享。那会很有帮助的

问候 镍钛参见以下内容:

首先创建一个接口
IRepository

public interface IRepository<T>
{
    int Add(T entity);
    void Delete(T entity);
    void Update(T entity);
    T GetById(int id);
    IEnumerable<T> FindAll(DetachedCriteria criteria);
    ...
    .
    .
    //
}
然后:

公共类实体存储库:存储库
{
公共实体报告(IActiveSessionManager activeSessionManger)
:base(activeSessionManger)
{
}
公共实体GetByName(字符串名称)
{
var-criteria=NHibernate.criteria.DetachedCriteria.For()
.添加(限制条件、等式(“名称”);
返回FindOne(标准);
}
公共IList returnsomething()
{
}
....
}
这是此模式的基本实现,但您可以在设计驱动时对其进行装饰

我建议,在理解这些模式并实现它之后,您可以进一步检查

 public class Repository<T> : IRepository<T>
{
    readonly IActiveSessionManager _activeSessionManager;
    protected ISession Session
    {
        get { return _activeSessionManager.GetActiveSession(); }
    }
    public Repository(IActiveSessionManager activeSessionManager)
    {
        _activeSessionManager = activeSessionManager;
    }
    public int Add(T entity)
    {
        int newId = (int)Session.Save(entity);
        Session.Flush();
        return newId;
    }
    .
    .
    // add the remaining implementations
}
 public T FindOne(NHibernate.Criterion.DetachedCriteria criteria)
 {
     return criteria.GetExecutableCriteria(Session).UniqueResult<T>();
 }
public class EntityRepository : Repository<Entity>
{
    public EntityRepository(IActiveSessionManager activeSessionManger)
        : base(activeSessionManger)
    {
    }
    public Entity GetByName(string name)
    {
        var criteria = NHibernate.Criterion.DetachedCriteria.For<Entity>()
            .Add(Restrictions.Eq("name", name));
        return FindOne(criteria);
    }
    public IList<Entity> returnsomething()
    {
    }
    ....
}