[SharePoint 2010] Corriger les limites de SPMetal : FieldType: Image

Comme nous avons pu le voir dans l’article précédent, certains types de colonnes ne sont pas pris en compte lors de la génération de SPMetal, nous allons voir ici comment corriger les problèmes pour un type bien précis: Image.

Pour cela, rien de plus simple, une fois que vous avez repéré quels sont vos champs qui ne passeront pas, il suffit de compléter le fichier SPMetal généré.

Les champs de ce type dans SharePoint permettent d’avoir accès à différents attributs, ce n’est donc pas une simple URL de type string qui est stocké.

Pour l’instancier, il faut donc utiliser :  Microsoft.SharePoint.Publishing.Fields.ImageFieldValue, vous pouvez retrouver les propriétés sur msdn ici.

Il reste maintenant à remplacer:

[Microsoft.SharePoint.Linq.ColumnAttribute(Name="col_Thumbnail", Storage="_thumbnail", FieldType="Invalid")]
public virtual object Thumbnail {
   get {
     return this._thumbnail;
   }
   set {
     if ((value != this._thumbnail)) {
         this.OnPropertyChanging("Thumbnail", this._thumbnail);
         this._thumbnail = value;
         this.OnPropertyChanged("Thumbnail");
     }
  }
}

Qui devient :

[Microsoft.SharePoint.Linq.ColumnAttribute(Name="col_Thumbnail", Storage="_thumbnail", FieldType="Image")]
public Microsoft.SharePoint.Publishing.Fields.ImageFieldValue Thumbnail {
   get {
     return this._thumbnail;
   }
   set {
     if ((value != this._thumbnail)) {
         this.OnPropertyChanging("Thumbnail", this._thumbnail);
         this._thumbnail = value;
         this.OnPropertyChanged("Thumbnail");
     }
   }
}

Sans oublier de remplacer :

private object Thumbnail   (situé en haut de la classe)  par:

private Microsoft.SharePoint.Publishing.Fields.ImageFieldValue Thumbnail.

Et le tour est joué, vous aurez alors accès à toutes les propriétés du champ (l’url bien sûr, le texte alternatif, hyperlien, la description…).

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :