J'expérimente la mise en cache d'AppFabric et j'ai rencontré un problème avec l'enregistrement des données récupérées dans le cache. La racine du problème est qu'il semble que AppFabric Caching nécessite que les données aient des attributs DataContract et Datamember appliqués à la classe en cours d'enregistrement.Cache AppFabric et sérialisation des objets IQueryable
Si tel est le cas, alors comment puis-je enregistrer ce (code simplifié):
var q = (from u in dbContext.Users
select new
{
Name = u.Name,
Id = u.RowId
});
cache.Put(“test”, q.ToList());
Calling Put fait cette exception:
System.Runtime.Serialization.InvalidDataContractException was caught
Message=Type '<>f__AnonymousTypec`6[System.Int32,System.String,System.Nullable`1[System.Int32],System.Boolean,System.Nullable`1[System.Int32],System.Int32]' cannot
be serialized. Consider marking it with the DataContractAttribute attribute, and
marking all of its members you want serialized with the DataMemberAttribute
attribute. If the type is a collection, consider marking it with the CollectionDataContractAttribute. See the Microsoft .NET Framework
documentation for other supported types.
Comment puis-je sérialiser les résultats d'un IQueryable alors AppFabric peut le mettre en cache?
Merci,
Rick
Je pensais que, le seul problème est que je vais avoir des dizaines de ces classes pour maintenir. – rboarman
Comment vous attendiez-vous à sortir les classes du cache à nouveau? Une autre alternative serait XML sérialiser l'objet dynmiquement sur save. Vous pouvez le faire avec une méthode d'assistance sur l'objet cache. –