il semble si je l'utilise en tant que base d'une entité d'une classe personnalisée, la ObjectContext.CreateObjectSet échouera à l'exception StackOverflowEntity Framework 4 ne prend pas en charge Motif générique Chose curieuse Récurrent
Codeest:
// This is generated by EF4 and i modify it to my custom class
public partial class EntityA : GClass<EntityA>
{
......
}
public partial class TestEntities : ObjectContext
{
public ObjectSet<EntityA> EntityAs
{
get
{
if ((_EntityAs == null))
{
// here will throw stackoverflow exception
_EntityAs = base.CreateObjectSet<EntityA>("EntityAs");
}
return _EntityAs;
}
}
private ObjectSet<EntityA> _EntityAs;
}
// This is custom class
public partial class EntityA
{
}
// This is my custom base class
public class GClass<T> : EntityObject where T : class
{
public virtual string GetStr()
{
return "GClass";
}
}
le code généré pourrait être modifié via un générateur de code. Je dois mettre les méthodes communes à la classe de base. –
Je recommande toujours de créer une interface. Les implémentations peuvent être générées dans la classe partielle (dans un autre fichier). Y a-t-il une raison qui ne fonctionnerait pas? –
Si l'interface d'utilisation, je vais devoir mettre en œuvre des choses à chaque classe, ce dont j'ai besoin est une classe de base pour gérer le processus commun. –