2009-04-29 6 views
1

J'essaye d'implémenter mes classes persistantes en utilisant des interfaces. J'ai créé les éléments suivantsComment utiliser les interfaces avec Telerik OpenAccess

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

Est-il possible d'indiquer que Foo est une classe valide et de l'utiliser par défaut, je ne veux pas utiliser la base de données pour stocker le type de classe.

Merci

Rohan

Répondre

2

La colonne descriminator est toujours nécessaire car OpenAccess ne sait pas s'il y aura plus d'implémentations valides plus tard. Ce que vous pouvez faire est d'utiliser une référence Foo directe en tant que champ privé et de l'exposer en tant que propriété Interface. L'exception de transtypage de la classe dans le setter peut vous aider à trouver les endroits où un objet erroné est défini.

Espoir qui aide,

Jan

Questions connexes