Pergunta

Eu estou tentando implementar minhas aulas persitent usando interfaces. Eu criei o seguinte

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;}}
}

É possível indicar que Foo é uma classe válido e usá-lo por padrão, eu não quero usar o banco de dados para armazenar o tipo de classe.

Graças

Rohan

Foi útil?

Solução 3

depois de ler através do Telerik guia eu postei uma pergunta em seu fórum ...

Usando Interfaces sem armazenar o tipo de classe na banco de dados

Parece que não é possível.

Outras dicas

A coluna descriminator é sempre necessária porque OpenAccess não sabe se pode haver implementações mais válidos depois. O que você pode fazer é usar uma referência Foo direta como o campo privado e expô-la como interface propriedade. A exceção de lançamento de classe na setter pode ajudá-lo a encontrar os lugares onde um objeto errado está definido.

Espero que ajude,

Jan

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top