Pregunta

Estoy intentando implementar mis clases persistentes usando interfaces. He creado el siguiente

public interface IFoo
{
    int Id {get;set;}
}

public class Foo : IFoo
{
    private int _id;

    public int Id {get{return _id;} set{_id = value;}}
}

public interface IBar
{
    int Id {get;set;}
    IFoo Foo {get;set;}
}

public class Bar : IBar
{
    private int _id;
    private IFoo _foo;

    public int Id {get{return _id;} set{_id = value;}}
    public IFoo Foo {get{return _foo;} set{_foo = value;}}
}

Es posible indicar que Foo es una clase válida y, para usarla de manera predeterminada, no quiero usar la base de datos para almacenar el tipo de clase.

Gracias

Rohan

¿Fue útil?

Solución 3

después de leer la guía de Telerik, publiqué una pregunta en su foro ...

Uso de interfaces sin almacenar el tipo de clase en el base de datos

Parece que no es posible.

Otros consejos

La columna descriminator siempre es necesaria porque OpenAccess no sabe si podría haber más implementaciones válidas más adelante. Lo que puede hacer es usar una referencia directa de Foo como campo privado y exponerla como propiedad de la Interfaz. La excepción de conversión de clase en el establecedor puede ayudarlo a encontrar los lugares donde se establece un objeto incorrecto.

Espero que ayude,

Enero

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top