J'ai une classe LINQ to SQL (dbml) représentant certaines tables dans une base de données. J'ai ajouté un "champ calculé" en étendant la classe partielle d'une des tables (Dwelling) avec une nouvelle propriété (DwellingCode); cette propriété prend les valeurs de plusieurs champs de base de données dans la table Dwelling et génère une chaîne.Obtention de la propriété de classe LINQ étendue à sérialiser
Jusqu'ici, tout fonctionne bien; Je peux obtenir ce champ calculé pour afficher correctement dans les contrôles liés dans les pages Web etc. Le problème est que j'ai également un service Web SOAP qui renvoie un objet d'habitation. Lorsque l'objet Dwelling est sérialisé en XML, le DwellingCode n'est pas inclus avec le reste des champs "réels" de la base de données.
Que dois-je faire pour que la propriété DwellingCode soit sérialisée avec le reste des champs de base de données? Basé sur un peu de googling, j'ai essayé d'ajouter [DataMember] et [DataMamberAttribute] à la propriété DwellingCode et [DataContract] et [Serializable] à la classe partielle, mais rien ne semble fonctionner.
public partial class Dwelling
{
public string DwellingCode
{
get
{
// code to concatenate fields here
}
}
}
Odd ... J'ai mis un point d'arrêt sur le getter et il s'exécute quand le service web est appelé. Donc, il récupère le DwellingCode, mais ne l'écrit pas en XML. –