J'essaie d'écrire Generic Repository dans EF 4. Mais mes codes ne sont pas beaux. Parce que ExpressionEntities n'est pas GENERIC.Comment écrire un nom d'entité générique dans un constructeur dans EF4?
Je veux convertir ce code:
public class DataRepository<T> : IRepository<T> where T : class
{
private ExpressionsEntities _context;
public DataRepository()
{
}
public DataRepository(ExpressionsEntities context)
{
_context = context;
}
}
à ce qui suit:
public class DataRepository<T> : IRepository<T> where T : class
{
private GetGenericEntityCONTEXT _context;
public DataRepository()
{
}
public DataRepository(GetGenericEntityCONTEXT context)
{
_context = context;
}
}
parce ExpressionsEntities non globales mes entités: ExpressionsEntities1, ExpressionsEntities 2, 3 ExpressionsEntities ETX ... Je dois écrire obtenir prendre l'entité par exemple:
public class DataRepository<T> : IRepository<T> where T : class
{
private Entity _context;
public DataRepository()
{
}
public DataRepository(Entity context)
{
_context = context;
}
public class Main
{
main()
{
new DataRepository(ExpressionEntities)
}
}
}
Loo s'il vous plaît ci-dessus codes: Mes codes génériques mais ExpressionsEntities pas générique selon les codes ci-dessus je devrais écrire toutes les entités. – Penguen
@Phsika - Qu'est-ce que "ExpressionEntities" - est-ce votre contexte de données? Je vais deviner et dire oui, et mettre à jour ma réponse. – RPM1984
Et non, vous n'avez pas besoin d'un référentiel par entité. Vous devriez avoir un dépôt * par agrégat root *.Créez une interface pour chaque racine agrégée et injectez le DataRepository ou un référentiel spécifique (qui dérive du DataRepository et satisfait ainsi le contrat d'interface). Le point entier du référentiel générique est de réduire le nombre d'implémentations. –
RPM1984