Durante un tiempo he estado pensando acerca de cómo lidiar con los objetos que se asignan identificadores de la base de datos.Tratar con identificadores de entidad de diseño de objetos
Un objeto típico que representa una entidad tabla puede verse como:
public class Test
{
public int Id { get; private set; }
public string Something { get; set; }
}
Supongamos que nos gustaría utilizar este objeto para insertar, recuperar y actualizar objetos en la base de datos. En cuanto a la recuperación y actualización no tenemos problemas, ya que el campo Id siempre tiene un valor.
Sin embargo, si queremos insertar un nuevo objeto del tipo de prueba en la base de datos, el campo ID se todavía tiene que tener un valor. Podríamos simplemente usar "0", ya que es poco probable que se use como clave de base de datos, pero realmente este no es un buen diseño.
Del mismo modo, si invertimos la situación y hacer que la propiedad Id anulable, podríamos utilizar null para los objetos que aún no se les ha asignado un identificador de la base de datos. Sin embargo, ahora es posible que un objeto recuperado de la base de datos no tenga un identificador (como lo permite el diseño de clase, pero no el diseño de la base de datos)
¿Alguna buena idea sobre cómo hacer un buen diseño para este problema?
que no es posible conseguir un objeto sin un identificador, si se recupera de la base de datos .. y cuando se inserta, se obtendrá un id de inmediato (a menos que tenga alguna base de datos reaaally extraña) – xs0
@ xs0 Obviamente . Sin embargo, mirando estrictamente la definición del tipo de objeto, esto es posible. – DEHAAS
Bueno, dices lo contrario en tu pregunta ... Pero de todos modos, ¿qué quieres hacer con estos objetos? A menos que explique qué operaciones se realizarán con ellos, no está claro cuál es el problema. – xs0