juin
2007
La syntaxe d’un join en LINQ est : from e1 in enumerable1 join e2 in enumerable2 on e1.X equal e2.X select new {e1.X, e1.Y, e1.A, e2.B} Je voulais faire un join sur e1.X equal e2.X et e1.Y equal e2.Y. Je pensais pouvoir utiliser un && comme dans un where mais ça ne marche pas. On ne peut mettre qu’une seule condition à un join. Anders Hejlsberg m’a donné la solution : passer par un anonymous […]
juin
2007
Avec Linq, une nouvelle interface est venu se greffer accompagnant INotifyPropertyChanged : INotifyPropertyChanging. Tout comme sa grande soeur (qui était là depuis .NET 2.0) elle ne comporte qu’un évènement : PropertyChanging. Bien souvent, les évènements en « ing » prennent des CancelEventArgs. Pas celui-là. Il a la même signature que PropertyChanged : public interface INotifyPropertyChanging { event PropertyChangedEventHandler PropertyChanging; }
juin
2007
System.Data.Linq.Table<> ne supporte pas l’extension method Last. Cependant, comme c’est un IEnumerable, l’erreur n’intervient qu’à l’exécution et non à la compilation. L’erreur est la suivante : « The query operator ‘Last’ is not supported. » Cependant on peut feinter : passer par l’extension method Last sur IEnumerable : ((IEnumerable<Person>)(dataContext.Persons)).Last(); ou dataContext.Persons.ToList().Last(); En faisant cela, on comprend pourquoi ce n’est pas supporté par System.Data.Linq.Table<>. En effet, le dernier élément n’est pas le dernier élément ajouté ! Pour info, […]
juin
2007
Imaginons une base SQL Server avec deux tables : une table Worker et une table Company. Quand vous ajoutez un fichier de type LINQ to SQL File à votre projet et que vous rajoutez dedans les deux tables, vous avez une classe qui hérite de System.Data.Linq.DataContext ainsi qu’une classe Worker et une classe Company. Votre classe qui hérite de System.Data.Linq.DataContext a deux propriétés : Workers et Companies. Comme vous pouvez le remarquer, ces noms sont […]
juin
2007
Lorsqu’on rajoute un ADO .NET Entity Data Model dans un projet, on obtient 4 fichiers : un .csdl qui représente vos entities, un fichier .cs (sous le fichier .csdl), un fichier .msl qui correspond au mapping entre la base et les entities et un fichier .ssdl qui représente la base. Les 3 fichiers (autre que le cs) sont fichiers de type xml. Dans le premier et le dernier fichier, le root node est Schema et […]
juin
2007
Dans une requête LINQ To XML, si le fichier XML contient un namespace, vous devez le préciser dans votre requête (merci à Steve Eichert pour l’info). Pour récupérer la liste des fichiers .cs d’un projet, il suffit de faire : XNamespace ns = XDocument.Load(csprojFile).Root.Attribute("xmlns").Value as string; var csFiles = from c in XElement.Load(csprojFile).Elements(ns + "ItemGroup").Elements(ns + "Compile") where ((string)c.Attribute("Include")).EndsWith(".cs") select […]
juin
2007
Oleg Levin vient de publier un article sur LINQ To DataSet avec le Compact Framework.
juin
2007
Après avoir traité LINQ To Object, Kader Yildirim vient de publier la partie 2 : LINQ To XML.
juin
2007
L’équipe XML de Microsoft vient de mettre en téléchargement LINQ to XSD alpha 0.2. Pour l’utiliser, il faut Orcas Beta 1. Vous pouvez le télécharger ici.
juin
2007
Microsoft délivre une application de référence .NET 3.5 qui reprend un grand nombre de nouveautés .NET 3.0 et 3.5 (IIS 7, ASP.NET AJAX, WCF, WPF, WF et Linq to SQL). Merci à Sami pour l’info.