Eliminação correta usando os padrões Repository e Unit Work com o Entity Framework?

Felicidades! Tenho algumas dúvidas sobre o uso da Unidade de Trabalho com o Repositório. Especialmente uma função do contexto filho do Entity Framework. Eu tenho procurado muita informação sobre este tema, mas tudo o que eu encontrei apenas diferentes tipos de uso de padrões, estou confuso e não consigo entender o pensamento principal.

1.Onde eu deveria perceber disposição e economia? -É corretamente perceber classe Disposable in Inheritance de DbContext? Depois disso realizamos em Repositório e Unidade de Trabalho ou apenas em Uni fo Work?

Onde colocar o método Salvar na unidade de trabalho ou no repositório?

Meu repositório será genérico O meu código está correto em estilo de arquiteto e outros detalhes? Por favor, diga se meus pensamentos estão errados.

    interface IRepository : IDisposable
    {
        void Create();
        void Delete();
        void Update();
        void Get();
        T getSomeByExpression()
        ...Some another costum operations
        ...should I remember about Save here? 
    }

    class Repository : IRepository
    {
        SomeContext context = new SomeContext();
        ...Using using(context = new SomeContext()){} in functions??
        ... 
        ....Disposing?
    }

    interface IUnitOfWork : IDisposable
    {
     ...Which methods I should realize?
    Commit()
    Save()
    ...Need some another methods like rollback, Attach() Add() or Dispose or something else?
    }
    class UnitOfWork
    {
     ...Collection of Repository

    }

Use após a unidade de trabalho no nível de lógica? Por favor me ajude a entender esse tema.

Eu quero saber, como corretamente usar padrões de unidade de trabalho e repositório juntos, especialmente incluem DBContext.Also eu quero saber onde usar algumas operações como Dispose. Quais operações devem estar em UnitOfWork normalmente, Save etc. Como dispor contexto no repositório?

questionAnswers(1)

yourAnswerToTheQuestion