begin process at 2013 06 18 08:44:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

SQL Server

 > 

LINQ to SQL / ENTITIES


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

LINQ to SQL / ENTITIES

mercredi 3 juin 2009 à 17:21:54 | LINQ to SQL / ENTITIES

Kikuts

Bonjour ! Alors voilà je suis en train de monter un Web Service pour que mes composants silverlight (xaml) puissent être "binder" ou bien récupérer des info à une base SQL Server.

Je me suis renseigné sur la façon de créer des requêtes, mapper une classe, exploiter la classe mappé avec le datacontext etc. ok c'est cool je peux faire pleins de choses. LINQ est puissant, permet de gagner du temps etc.

Mais où coder mes requête en LINQ ? Dans ma classe de Web Service ?

Désolé je suis litérallement perdu entre web service, LINQ, xaml, asp. Bref je commence à tout mélangé : /

Par ailleurs, est-ce utile de faire du LINQ to ENTITIES si ma base est une base SQL server ? Est-ce vraiment mieux ?

http://romagny13.over-blog.com/article-10363239.html

D'après ce blog, je ne vois pas beaucoup de différences, si ce n'est au niveau du type des attributs etc.

Merci d'avance ; )
mercredi 3 juin 2009 à 21:32:56 | Re : LINQ to SQL / ENTITIES

nhervagault

Administrateur CodeS-SourceS
Salut,

Je vais tenter de répondre à tes questions.

1--> Linq2sql / Linq2Entities
Linq2sql fait un mapping rudimentaire entre la base et les objets (c'est a dire 1 table - 1 classe)

Linq2entities permet un mapping objet relationnel évoluer, c'est a dire que des tables peuvent etre splitté - pour représenter
des sous objets ou des heritage par exemple.
Le mapping est configurable de maniere tres précise.

NB Il semblerait que linq2sql serait abandonné par microsoft (a moins qu'il n'aurait plus d'évolution)

2 --> Structuration de projet

En général les web service WCF, sont a faire dans plusieurs projets
un projet qui expose les contrat des services web et un projet qui gere l'implementation

http://blogs.msdn.com/pascal/archive/2007/11/14/mes-webcasts-wcf-enfin-disponibles.aspx
et les webcast sur le site microsoft.com/france/vision

Pour completer tu peux regarder ASTORIA ou ado.net data service pour d'autre info

Bon dev


jeudi 4 juin 2009 à 10:35:45 | Re : LINQ to SQL / ENTITIES

Kikuts

J'ai vu sur silverlight.net, sur un tuto vidéo, que le fichier monWCF et ImonWCF était directement intégré au projet de base, dans le dossier app_code.

Cela fait-il une grande différence ? Cela poserait il des problèmes d'utilisation ? Ou il est mieux de créer un projet pour l'interface, et un autre pr la description des méthodes.

Par ailleurs, si tu as regardé la vidéo du lien numéro 2/13, il y a une appli console. Est-ce utile ? Puis je l'intégrer dans une appli web pour tracer mes actions ?

Et avant de valider ta réponse, sais tu où est-il préférable de coder mes requête en LINQ ? Dans ma classe de Web Service ou ailleurs ?

Merci de ta réponse qui m'en a déjà pas mal dis. Je regarde en ce moment même les vidéos, très instructives, sur le web service (par contre je sais pas pourquoi, je ne peux pas me déplacer sur la vidéo, je suis obligé de recommencer la vidéo à zéro si je rate un petit bout ... et impossible d'ouvrir le lien des vidéos sous IE :(

Et sinon cool, maintenant je me pose des questions sur les Chanels et autres trucs vus dans la vidéo aye aye aye, j'en ai pas finit avec les web services ptdr

Désolé de poser bcp de question mais je suis curieux,  (tqt pas je cherche aussi activement sur le net des vidéos et articles qui peuvent m'aider !) et tu me sembles bien renseigné sur le sujet. Donc autant demander à qq1 de compétent

Encore merci ; )

jeudi 4 juin 2009 à 10:43:03 | Re : LINQ to SQL / ENTITIES

Kikuts

Ps : astoria.net est un site de vente d'électroménager

[ Lien ]
->
Le projet Astoria, c'est le principe de LINQ to ENTITIES avec la liaison sur modèle conceptuel ?
jeudi 4 juin 2009 à 11:31:45 | Re : LINQ to SQL / ENTITIES

krimog

Administrateur CodeS-SourceS
Réponse acceptée !
Salut

"Ou il est mieux de créer un projet pour l'interface, et un autre pr la description des méthodes."
Une interface sert pour 2 choses : utiliser de la même manière 2 classes qui implémentent la même interface (les regrouper dans des listes, ce genre de choses) et définir le contrat qu'une classe, que ton programme ne connait pas, doit respecter, tout simplement parce que si ton programme connaît la classe, l'interface n'a aucun intérêt.

Pour résumer :

1ère utilisation
interface IVehicule
class Voiture : IVehicule
class Velo : IVehicule
List<IVehicule> liste
liste[i].SeDeplacer(A, B);

2ème utilisation
interface IHorairesDeCinema
IHorairesDeCinema ihdc = monTrucExterneQueJeSaisPasCommentIlFonctionneMaisQueJeSaisCommentLUtiliserPuisqueCEstUneIHorairesDeCinema();
ihdc.ChoperLesHorairesDuFilm("Les bisounours en vacances", "MonCinemaPréféré");

Avec un webservice, tu es clairement dans le 2ème cas. Tu es censé avoir 3 projets :
- Un projet contenant uniquement l'interface (ou les interfaces) (une DLL bien sûr)
- Un projet web service qui référence ton projet d'interfaces et implémente celle(s)-ci, qui fait toutes les opérations, etc.
- Un projet client qui référence ton projet d'interfaces et qui fait une référence web vers ton webservices, qui appelle le web service pour créer un objet implémentant ton interface, et qui utilisera ta référence (du type de ton interface) pour faire les actions que tu souhaites sur ton web service.

Cela doit également répondre à ta question sur l'endroit où tu dois faire tes requêtes linq : directement dans ton webservice.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
jeudi 4 juin 2009 à 12:05:44 | Re : LINQ to SQL / ENTITIES

Kikuts

Sacré Krimog <3 ^_^ merci ! pour le placement du code et le reste !!

==>
- Un projet client qui référence ton projet d'interfaces et qui fait une référence web vers ton webservices, qui appelle le web service pour créer un objet implémentant ton interface, et qui utilisera ta référence (du type de ton interface) pour faire les actions que tu souhaites sur ton web service

J'ai du mal à comprendre ce bloc : ça ressemble à une phrase orienté objet mdr.

Je comprend pas trop : le projet client qui référence le projet interface et qui fait référence web vers le web service. Oula, j'essaye de faire un schéma sur papier, mais c'est pas très clair ...

Si tu pouvais me ré expliquer ce points (dsl j'aime pas être dans le flou)

Merci Krimooooooooog !!!   (et les autres qui répondront hein ;)
jeudi 4 juin 2009 à 14:34:43 | Re : LINQ to SQL / ENTITIES

krimog

Administrateur CodeS-SourceS
Réponse acceptée !
En gros (attention à de pas absolument tout prendre au pied de la lettre, je n'ai quasiment jamais touché à un web service, donc quelques erreurs ont pu se glisser),

Tu as ton projet client. Clic droit dessus => ajouter une référence => ta dll interface
C'est ce qui va te permettre d'utiliser (via une interface), l'objet renvoyé par ton web service

Clic droit sur ton projet => ajouter une référence de service => l'url de ton web service publié.
C'est ce qui va te permettre de renvoyer l'objet créé par le service.

Ton interface ressemble à ça
interface IHorairesDeCinema
{
    public DateTime[] ChoperLesHorairesDuFilm(string film, string cinema);
}

Ton webservice ressemble à ça
[WebService blablabla]
public static class ObjectGetter
{
    [WebMethod]
    public static IHorairesDeCinema GetHorairesObject()
    {
        return new HorairesCine();
    }
}

[WebService blablabla]
public class HorairesCine : IHorairesDeCinema
{
    [WebMethod]
    public DateTime[] ChoperLesHorairesDuFilm(string film, string cinema)
    {
        var q = from h in maDB.Horaires.Include("Film").Include("Cinema") where h.Film.Name == film && h.Cinema.Name == cinema
                select h.Horaire;
        return q.ToArray();
    }
}

Ton client ressemble à ça
IHorairesDeCinema horaires = monWebService/*que tu as dû nommer au moment où tu as ajouté la référence de service*/.ObjectGetter.GetHorairesObject();
foreach(DateTime horaire in horaires.ChoperLesHorairesDuFilm("Terminator 18", "UGC Paris"))
{
    Console.WriteLine("Le film passe le " + horaire.ToString());
}

L'avantage de faire cette méthode (qui passe par une interface) plutôt que d'utiliser directement un objet de type HorairesCine (dans mon exemple) est que tu peux changer autant que tu le souhaites ton webservice, tant que la classe implémente l'interface et que tu ne modifie pas cette interface, ton client marche sans avoir à faire la moindre modification / recompilation.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
jeudi 4 juin 2009 à 16:15:38 | Re : LINQ to SQL / ENTITIES

Kikuts

[WebMethod] = web service ASMX

[OperationContract] = ws WCF

C'est bien ça ? Que je ne recopie pas bêtement 8-)

Je suis partis sur WCF car il parait (d'après des blogs lol) que ASMX va disparaitre au profit de WCF.

Ca prête quand même à confusion [WebMethod] hein, à croire que WCF ne marcherait pas sur le web mdr

Merci ! Je devrais m'en sortir comme un chef grâce à toi <3
jeudi 4 juin 2009 à 16:26:44 | Re : LINQ to SQL / ENTITIES

Kikuts

Par ailleurs, es tu sûr que [WebMethod] ne va pas dans la classe d'Interface ?

par exemple

## Interface
[WebMethod] (ou [OperationContract])
public string NomMethode();

## Service
NomMethode()
{
return "n'importe quoi";
}
jeudi 4 juin 2009 à 16:51:29 | Re : LINQ to SQL / ENTITIES

krimog

Administrateur CodeS-SourceS
Euh, j'avoue ne pas trop pouvoir t'en dire plus là. Les WebServices / WCF c'est pas là dedans que j'ai le plus de connaissances.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -

1 2

Cette discussion est classée dans : web, sql, to, entities, linq


Répondre à ce message

Sujets en rapport avec ce message

Authentification avec Linq to SQL ou Entities Framework [ par okosa ] Salut les devs juste savoir comment faire l'authentification d'une connection grâce à ma chaîne de connection SQL SERVER? [code=cs] MaBAzEntities base Le Linq to Sql [ par okosa ] Salut tout le monde,vous êtes les meilleurs.... Juste vous dire que,j'ai un petit problème avec le Linq to Sql,je veux séléctionner que 2 champs dans Le Linq to Sql En reseau [ par okosa ] Salutation à tous, Juste savoir si possible de liens une Appli c# en utilisant la technologie du Linq to sql avec une BD sql server en Reseau local(TC Authentification SQL SERVER avec le Linq to sql [ par okosa ] Salut tout le monde,j'ai un problème sur l'authentification SQl Server 2008 R2 avec le Linq to sql,en faite l'application sera déployée dans 2 différe Différence entre DataSet et Linq To SQL Classes [ par acppfrance ] Bonjour à tous, J'ai travaillé deja avec Linq To SQL Classes et je veux savoir la différence entre Linq To SQL Classes et DataSet. J'ai besoin de vo ADO.NET, Linq to SQL, entity framework ? Que choisir? je m'y perds, besoin d'explications... [ par Mgiv64 ] Bonjour à tous, Je développe occasionnellement en C# depuis quelques années. Jusqu'à présent je n'avais pas beaucoup besoin d'avoir recours à des ba Linq to Entities, probeleme qui semble etre simple [ par azerto00 ] Bonjour, tout d'abord, je tiens a vous précisez que mon message ne contiendra pas d'accent car je travaille sur un clavier anglais. (Firefox et son ou linq to sql [ par casa_sniper ] Bonjour j'ai un probleme concernnant l'access via linq to sql je dois alimenter une gridview par plusieurs tables (utilisateurs ,profil ,magasin)qui Filtre sur une association en linq to sql [ par SharpMao ] Salut à vous tous,J'ai un petit problème en linq to sql.J'ai deux tables qui sont reliées, A->B. Mais en plus de l'association sur la clé primaire, j' modification dans un datagrid en utilisant linq to sql [ par jihedines ] Bonjour à tous, j'utilise le datagrid pour afficher les données à l'aide de linq to sql sauf ke g un pb au niveau de la modification ,j'arrive pas à m


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,513 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales