ahmed_sa Ответов: 1

Как реализовать шаблон репозитория в ASP.NET ядро 2.1


Проблема

Как реализовать шаблон репозитория в asp.net ядро 2.1 visual studio 2017 с SQL server 2012 ?

я работаю над проектом работаю над шаблоном репозитория но не могу его реализовать




1 - Как определить репозиторий на контроллере Employee для вызова функции GetAll на конструкторе?

то есть как определить репозиторий на конструкторе контроллера

2 - что я пишу при запуске, чтобы определить эти модули и подключение ?

3 - предположим, у меня есть компост ключа, как использовать методы getbyid предположим, у меня есть (Employeid,branchcode) в качестве ключевых компост ?

компостный ключ определяется как fluent api или аннотация или что ?

пожалуйста, не могли бы вы помочь мне и дать мне детали, если это возможно

может ли кто-нибудь ответить мне на этот вопрос, пожалуйста ?

Что я уже пробовал:

model Employee

public class Employee   
{   
public int EmployeeId { get; set; }   
public int BranchCode { get; set; }   
public string EmployeeName { get; set; }   
public int EmployeeAge { get; set; }   
}   
Repository public class RepositoryTab<T> : IrepositoryTab<T> where T : class   
{   
protected TabDbContext db { get; set; }   
private DbSet<T> dbSet;  
 public RepositoryTab(TabDbContext Tabdb)   
{              
 db = Tabdb;              
 dbSet = db.Set<T>();   
}   
public IEnumerable<T> GetAll()   
{  
 return dbSet.ToList();  
 }   
}   
public interface IrepositoryTab<T> where T : class { IEnumerable<T> GetAll();        
T GetById(object Id);  
 }  

1 Ответов

Рейтинг:
1

Gerry Schmitz

1) вы думаете о "составных ключах":

c# - сопоставление составных ключей с использованием кода EF first - Stack Overflow[^]

2) "дженерики" (почти) никогда не оправдывают себя.

Создайте "значимую" статику, такую как "GetCustomerByXxxx". (или что-то в этом роде)

"GetAll()" не подразумевает никакого учета производительности и должен автоматически отмечаться в файле сотрудника.