Accueil > Forum > > > > LINQ to SQL / ENTITIES
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
|
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
|
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 serviceJ'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
|
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
|
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 ! -
|
|
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
Livres en rapport
|
Derniers Blogs
INTéGRATION YAMMER ET SHAREPOINT ONLINE (OFFICE 365), éTAPE 1 .INTéGRATION YAMMER ET SHAREPOINT ONLINE (OFFICE 365), éTAPE 1 . par Patrick Guimonet
#Yammer Certains s'en sont déjà fait l'écho (ici en allemand par exemple : Yammer Integration in Office 365 Phase 1) ou bien sûr sur le blog SharePoint : Make Yammer your default social network in Office 365 en anglais. Mais c'e...
Cliquez pour lire la suite de l'article par Patrick Guimonet [DYNAMICS CRM] AJOUTER LES DOSSIERS DE CRM AU DOSSIER FAVORIS D'OUTLOOK[DYNAMICS CRM] AJOUTER LES DOSSIERS DE CRM AU DOSSIER FAVORIS D'OUTLOOK par bianca
Objectif
Pour aller plus rapidement dans les menus de Dynamics CRM depuis votre client CRM pour Outlook, vous pouvez utiliser le dossier des Favoris d'Outlook. En effet, par simple glisser/déplacer, vous pouvez déposer un éléme...
Cliquez pour lire la suite de l'article par bianca VISUAL STUDIO 2013VISUAL STUDIO 2013 par Etienne Margraff
Ahh, ENFIN ! c'est officiel, il va y avoir un VS et un TFS 2013. De nouvelles fonctionnalités qui vont à mon sens assoir la maturité de TFS qui est maintenant l'outil incontournable pour tout projet (.NET, mais pas seulement !). Si vous n'avez pas jet...
Cliquez pour lire la suite de l'article par Etienne Margraff CONFIGURER LA COLLATION SQL SERVER POUR SHAREPOINT CONFIGURER LA COLLATION SQL SERVER POUR SHAREPOINT par JeremyJeanson
Note : Je poste cet article à titre de pense-bête. Cela fait des années que je me trimballe avec une capture d'écran, car je ne me rappel jamais comment choisir la collation d'un SQL Server pour SharePoint. Pour SharePoint, il est conseillé de choisir la ...
Cliquez pour lire la suite de l'article par JeremyJeanson ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 1: CRéATION DU PLUGINETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 1: CRéATION DU PLUGIN par Philess
Dans cet article nous allons créer un plugin installable sur le Team Web Access qui s'intègrera dans l'architecture du site et se chargera au moment où on le décidera.
Avant de lire ce billet et si cela n'est pas encore fait j...
Cliquez pour lire la suite de l'article par Philess
Forum
RE : COMBOBOXRE : COMBOBOX par whismeril
Cliquez pour lire la suite par whismeril COMBOBOXCOMBOBOX par fifita92
Cliquez pour lire la suite par fifita92
Logiciels
Nego Facturation (1.85)NEGO FACTURATION (1.85)Nego Facturation est un logiciel complet qui permet de gérer vos factures et devis très simplemen... Cliquez pour télécharger Nego Facturation Devis-Factures PHMSD (2.2.0.1)DEVIS-FACTURES PHMSD (2.2.0.1)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD WDmemoCode (2.0.0.1)WDMEMOCODE (2.0.0.1)WDmemoCode a été conçu pour aider les développeurs Windev à créer/compléter et conserver une base... Cliquez pour télécharger WDmemoCode ProtoMedic (4.0.0.11)PROTOMEDIC (4.0.0.11)ProtoMedic est un logiciel destiné principalement aux médecins généralistes.
ProtoMedic permet d... Cliquez pour télécharger ProtoMedic MyCurriculum 2011 (7.4.1.12)MYCURRICULUM 2011 (7.4.1.12)Rédigez votre Curriculum Vitae mais également ceux de votre famille ou de vos amis très facilemen... Cliquez pour télécharger MyCurriculum 2011
|