30. C-sharp 26 18-03-2014

Created Tuesday 18 March 2014

truncate — удаление данных из таблицы, быстрее, чем delete from

pivot — слово для поиска информации по повороту таблиц в SQL

И вообще, гуглить pivot, cube, union, declare, case, for xml auto

  1. Технологии работы с базами данных
    1. ADO.NET Classic
    2. ORMs
      1. Typed DataSet
      2. Linq to SQL
        1. Если есть способ хранения информации, суть которого последовательные элементы (массив, коллекция, база данных (как последовательность записей)) — последовательность однотипных данных
        2. Универсальный способ обработки любых последовательность
        3. Самостоятельная технология
      3. Entity Framework
      4. NHibernate — non Microsoft technology
  2. Версия C# сегодня — 5.0
  3. Linq
    1. Add — New Item — Data — LINQ to SQL classes — filename.dbml — drag tables to designer (class per table will be created)
    2. DAL_LTSQL.filenameDataContext db = new DAL_LTSQL.filenameDataContext();
      1. In this case will be used automatically generated connection string (from App.config)
    3. DAL_LTSQL.filenameDataContext db = new DAL_LTSQL.filenameDataContext("someOtherConnectionString");
    4. Module 3 Querying Entity Data
    5. Linq — динамическая система, т.е. загрузка типов данных происходит в runtime
    6. Переменные анонимных типов — var
    7. var pos_list = from po in db.pos select po;
    8. var pos_list = (from po in db.pos select po).First();
    9. foreach(var position in pos_list)
    10. {
    11. Console.WriteLine(position.createDate.ToString() + " " + position.opis);
    12. }
    13. Выборки Линка работают только по отношении к последовательностям (sequence), т.е., к таким типам данным, которые реализуют интерфейс IEnumerable.
    14. IQueryable — наследник IEnumerable
    15. IQueryable<DAL_LTSQL.po> pos_list = from po in db.pos select po;
    16. foreach(DAL_LTSQL.po position in pos_list)
    17. {
    18. Console.WriteLine(position.createDate.ToString() + " " + position.opis);
    19. }
    20. partial class
      1. Частичные классы объявляются в тех случаях, когда нужно объявить классы с одним и тем же именем, но с разной функциональностью ("разрезанный класс")
    21. pos_list1 = from po in db.pos where po.createDate < DateTime.Now select new IQueryable<DAL_LTSQL.po> {x = po.opis, y = po.createDate}; // На уроке не получилось и вернулись к var
    22. foreach(DAL_LTSQL.po position in pos_list)
    23. {
    24. Console.WriteLine(position.y.ToString() + " " + position.x.ToString());
    25. }
    26. Инициализация классов и анонимные классы — class initializing & anonymous classes
      1. Можно создать класс без имени, если он больше нигде не нужен
    27. Google — using-linq-to-sql-part-1
    28. LinqPad — program for training Linq
    29. Решение проблемы с типизацией анонимного объекта
      1. http://blogs.msdn.com/b/swiss_dpe_team/archive/2008/01/25/using-your-own-defined-type-in-a-linq-query-expression.aspx
      2. DAL_LTSQL.po rec = (from po in db.pos select po).First();
    30. rec.opis = "kuku";
    31. db.SubmitChanges();



Backlinks: