2012-05-17 5 views
5

¿Existe una convención de nomenclatura estándar para una clase que interactúa con la base de datos (elementos CRUD o verificación de duplicación). Ahora mismo acaba de ser nombrado como ayudante, por ejemplo, un nombre "Suscripciones" Una clase que interactuar con esa tabla se llamarán "SubscriptionHelper"Convención de nomenclatura para la clase que interactúa con la base de datos

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace LoopinWineBackOffice.Helper 
{ 
    public class SubscriberHelper 
    { 
     public static bool IsEmailAlreadyInUsed(string email) 
     { 
      using (var dc = new LoopinWiineContainer()) 
      { 
       return dc.Subscribers.Any(item => item.Email==email.Trim()); 
      } 
     } 
    } 
} 

Mi código de ejemplo es algo como esto.

Respuesta

9

Según mi experiencia [y sin intención de ofender] cuando las clases empiezan a recibir nombres como 'Ayuda' y 'Administrador' es porque el propósito de esa clase no ha sido bien definido (y he sido culpable de esto en el pasado mí mismo).

En este caso, especularía que no ha pensado realmente en su patrón de acceso a datos, y que acaba de obtener un montón de SQL ad-hoc en la clase 'SubscriptionHelper'.

Ahora, si estuviera implementando un patrón de acceso a datos estándar, por ejemplo, un patrón Repositorio, su clase se llamaría SubscriptionRepository, y su intención sería mucho más clara.

Por lo tanto, en respuesta a la pregunta: No, no creo que haya una convención de 'denominación' estándar para su escenario. Sin embargo, existen varios patrones de diseño estándar que podría aplicar potencialmente a su sistema, y ​​al hacerlo, es probable que termine con una convención de nomenclatura que sea a la vez informativa y significativa.

Aquí hay un punto de partida para algunos patrones de diseño bien conocidos: http://martinfowler.com/eaaCatalog/, pero sin saber más sobre el proyecto, sería difícil orientarlo mucho más que eso.

+0

I concure - usted debe estar pensando en los patrones sin nombrar convenciones. p.ej. MVC o Repositorio. Hay muchos marcos de datos en .Net también - EF - LINQ - ADO ... – SyntaxGoonoo

+0

No creo que haya ninguna vergüenza en terminar con un montón de funciones que simplemente interactúan con los datos. A menudo sí, y cuando su propósito común se vuelve claro, me refactorizo ​​en algo más significativo. – Ally

3

¿Existe tal cosa como la convención de nomenclatura estándar para una clase que interactúan con la base de datos

Sí, ¿qué hay después del patrón tabla de datos de puerta de enlace, en cuyo caso tendría un "suscriptor Gateway" objeto para acceder a una sola tabla o vista: selecciona, inserta, actualiza y elimina.

Puerta de enlace de datos de tabla: un objeto que actúa como puerta de enlace a una tabla de base de datos. http://martinfowler.com/eaaCatalog/tableDataGateway.html

Cuestiones relacionadas