2011-08-25 11 views
7

¿es correcto para tener constructor por defecto que establece algunos valores por defecto como:Entity Framework POCO predeterminado constructor

public class BetScreenshot 
{ 
    ... 

    public BetScreenshot() 
    { 
     CreationDateTime = DateTime.UtcNow; 
     StatusEnum = BetScreenshotStatus.NotProcessed; 
    } 
} 

Mi primer sentimiento malo es que estas propiedades podrían ser marcados como modificado durante EF entidades de instancias. Pero puede haber algo más?

+0

Esto no puede considerarse como una [entidad POCO] (http://msdn.microsoft.com/en-us/library/dd468057.aspx), es necesario tener un constructor sin parámetros. Además, no se puede saber si va a habilitar el seguimiento de cambios debido a las declaraciones de bienes no son visibles (que tienen que ser 'virtual' si desea cambiar el seguimiento habilitado). – casperOne

+0

@casperOne El constructor sin parámetros parece a mí ...? – Mike

+0

@ Mike: Mira la [historial de ediciones] (http://stackoverflow.com/revisions/7190472/3) en relación a cuando se hizo el comentario. – casperOne

Respuesta

7

Sí que está bien para inicializar propiedades. Efectivamente durante la construcción usando un constructor sin parámetros, los campos del tipo se inicializan de todos modos. Solo está eligiendo un valor predeterminado diferente. Es una bonita common practice a nuevas entidades y hasta colecciones hijas, pero no hay razón propiedades simples no se pueden inicializar. Hago esto para varias entidades y EF reconoce correctamente el objeto como nuevo/sin modificar.

Cuestiones relacionadas