2010-01-28 9 views
2

Je souhaite avoir un champ dans mon entité où les données renvoyées proviennent d'une fonction de classe dans mydomainservice et non de la base de données.LinqToSql comment implémenter des colonnes calculées

La raison est que je veux générer une URL d'image (bind Silverlight) basée plutôt vaguement sur d'autres champs d'une table

Comment puis-je obtenir cela?

Répondre

2

Les deux autres ont mentionné une classe partielle. Ils sont corrects. Voici un exemple ...

public partial class MyImage 
{ 
    public string CompleteUrl 
    { 
     get { return string.Format("http://{0}/{1}/{2}.png", Host, Folder, Filename); } 
    } 
} 

Cela pourrait supposer que vous avez déjà des colonnes nommées « Host », « Dossier » et « Nom du fichier » dans votre base de données, et celles-ci ont déjà été mis en correspondance avec les colonnes appropriées. L2S génère des classes partielles pour l'ensemble de ses implémentations

Vous ne devriez pas faire votre propre cartographie. Ces classes partielles vous permettent de créer un nouveau fichier (avec ClassName.cs) qui vous permettra d'étendre la fonctionnalité de vos objets de domaine.

+0

Merci beaucoup, je vais devoir expérimenter un peu pour voir ce que je reçois :) – Martin

+0

Yepp! Cela fonctionne vraiment, et si simple. La lecture de tonnes de documentation a vraiment été nulle part – Martin

1

Vous pouvez étendre votre classe générée linq2sql en créant une classe partial portant le même nom (dans le même espace de noms) et en plaçant la méthode dans ce fichier.

1

Déclarez une classe partial avec le même nom que la classe d'entité et dans le même assembly. Déclarez votre fonction/propriété comme d'habitude.

+0

Vous parlez de l'ajout d'une classe partielle à Dataclasses.designes.cs? Comment décorez-vous la [Colonne (Stockage = ???] – Martin

Questions connexes