developpement:dotnet:linq:linq-to-sql:introduction
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | Prochaine révisionLes deux révisions suivantes | ||
developpement:dotnet:linq:linq-to-sql:introduction [2022/02/02 00:42] – modification externe 127.0.0.1 | developpement:dotnet:linq:linq-to-sql:introduction [2022/03/15 14:49] – sgariepy | ||
---|---|---|---|
Ligne 659: | Ligne 659: | ||
SubmitChanges(); | SubmitChanges(); | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== Exemples ====== | ||
+ | |||
+ | ===== Exemple 1 ===== | ||
+ | |||
+ | <code csharp> | ||
+ | domInt[0] = 76; | ||
+ | domInt[1] = 70; | ||
+ | domInt[2] = 72; | ||
+ | |||
+ | var result= (from a in Employee | ||
+ | select new | ||
+ | { | ||
+ | a.IdEmployeeDetails, | ||
+ | DF = String.Join(" | ||
+ | where domInt.Contains(d.IdAddress) | ||
+ | select new {AddressName=d.AddressName}.ToString()).ToArray() ), | ||
+ | a.IdDepartment, | ||
+ | a.Status | ||
+ | }).ToList(); | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Obtenir des Id inutilisés ===== | ||
+ | |||
+ | <code csharp> | ||
+ | int[] strs = (from c in EMPLOYEs | ||
+ | select c.EMPLOYE_PK).ToArray(); | ||
+ | |||
+ | var missing = from i in Enumerable.Range(strs.Min(), | ||
+ | where !strs.Contains(i) | ||
+ | select i; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Exemple 2 ===== | ||
+ | |||
+ | <code csharp> | ||
+ | /// < | ||
+ | /// Donne un bloc d'Ids qui sont disponibles dans la table us_Acces | ||
+ | /// et qui pourront être utilisés. | ||
+ | /// </ | ||
+ | /// < | ||
+ | /// Recueille les trous, c' | ||
+ | /// avant et après ceux-ci. | ||
+ | /// | ||
+ | /// retournera le 3,7,8,... | ||
+ | /// S'il n'y en a pas assez d'Id récupérés, | ||
+ | /// et on incrémente les Ids à partir de celui-ci. | ||
+ | /// </ | ||
+ | /// <param name=" | ||
+ | /// < | ||
+ | private int[] GetNextAvailableIdBlock(int blockLentgth) | ||
+ | { | ||
+ | using (AccesBDDataContext db = new AccesBDDataContext()) | ||
+ | { | ||
+ | int[] IdBlock = new int[blockLentgth]; | ||
+ | |||
+ | // On recherche les trous, c' | ||
+ | int[] t1 = (from a in db.us_Acces | ||
+ | where !(from a1 in db.us_Acces | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | if (t1.Length < blockLentgth) | ||
+ | { | ||
+ | // On récupère le dernier Id disponible + 1 et on incrémentera à partir de cet Id | ||
+ | int lastAvailableId = (from i in db.us_Acces select i.IdAcces).Max() + 1; | ||
+ | for (int i = 0; i < IdBlock.Length; | ||
+ | { | ||
+ | IdBlock[i] = lastAvailableId++; | ||
+ | } | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | // On prend les premiers disponibles (au nombre de " | ||
+ | IdBlock = t1.Take(blockLentgth).ToArray(); | ||
+ | } | ||
+ | return IdBlock; | ||
+ | } | ||
+ | } | ||
</ | </ | ||