Задать вопрос
  • Практики регулирования доступа к кэшированным (редко изменяемым) данным в условиях многопоточности?

    @kttotto
    пофиг на чем писать
    Если данные в кеше недействительны, то кэш сбрасывается и перечитывается по новой. Чтобы весь глобально не сбрасывать, его делят на слои и сбрасывают необходимый слой. Чтобы отдельно объект в кэше обновлять, такого не встречал.

    Если слои кэша в Concurrent списках, то без разницы, кто его в этот момент читает. Мы для кэша используем Lazy.

    Я так понимаю, что данные хоть и будут изменяться, то не часто, иначе нет смысла в кэше. В нашем случае, когда приходят новые данные или мы их обновляем, мы руками вызываем _cache.Layer.Reset()
    Ответ написан
    1 комментарий
  • Есть ли польза в частичном переходе с EntityFramework на sql запросы?

    @kttotto
    пофиг на чем писать
    Для оптимизации - имеет смысл, это действительно ускорит сложные запросы. Разницы нет, сколькими способами Вы будете доставать данные из бд в контроллере. Сборка загрузится один раз, и если она будет висеть без дела, погоды это не сделает. Вы можете сделать дополнительную прослойку Репозитория между бд и контроллером и внутри наделать методов которые будут хоть через EF, хоть через ADO.NET, или еще через что доставать данные.
    Ответ написан
    Комментировать
  • Как передавать данные между контроллерами и представлениями?

    @kttotto
    пофиг на чем писать
    Изучите подробно концепцию MVC и зачем она нужна. Данные должны ходить от контроллера к представлению для отображения и с представления на контроллер. Больше никак. Никаких между представлениями и между контроллерами.
    Если Вы хотите хранить общие данные для всех представлений, то сохраняйте их либо в сесии (на стороне сервера), либо в куках (на стороне клиента). А index будет читать эти данные, например из куков и отображать в лайауте.
    Ответ написан
    Комментировать
  • Как решить проблему, не видит метод контроллера?

    @kttotto
    пофиг на чем писать
    Зачем Вы дублируете вопросы?
    Перейдите по ссылке localhost:17224/api/values/PostClientIdInController просто в строке браузера. Если попадете в свой контроллер, то он просто считает Ваш метод как Get. Над методом поставьте атрибут [HttpPost] и будет Вам счастье.
    Ответ написан
    Комментировать
  • Как решить проблему, не видит метод контроллера valuescontroller?

    @kttotto
    пофиг на чем писать
    Лучше сделайте через атрибут [HttpPost], а не приставку Post. По видимому он метод считает как Get, вот и не видит.
    Ответ написан
    Комментировать
  • Почему в контроллер не передаются данный?

    @kttotto
    пофиг на чем писать
    Попробуйте так
    public ActionResult Index([FromBody] string stat)
    Ну и конечно отправляться должен объект data: { stat: "Hello" }
    Ответ написан
    Комментировать
  • Automapper - Можно ли проигнорировать маппинг какого-либо свойства уже после создания карты маппинга?

    @kttotto
    пофиг на чем писать
    Я, думаю, что только создать две разные конфигурации.
    Ответ написан
    Комментировать
  • Как сделать циклический запрос к базе данных?

    @kttotto
    пофиг на чем писать
    Небольшие замечания:
    1. Перед тем как копировать сюда код, лучше его скопипастить в блокнот, там его отформатировать (удалить слева лишние табы), а потом только из блокнота копипастить сюда. Тяжело воспринимать плохо отформатированный код, особенно когда его много.
    2. Очень тяжело читать код с непонятными наименованиями. Лучше придерживаться традиции именования на нормальном английском языке. Закрепите в браузере страницу с гугл переводчиком и при необходимости перевести на английский - дело пары секунд. Никаких сокращений, поля в моделях - только первая буква большая. Некоторые наименования я так и не понял, что Вы ими обозначили.
    3. Преподаватель предмета, это пользователь, значит и привязывать надо не по его имени, а по его Id. Вместо
    var jlist = db.Jpredmets.Where(j => j.PREPODIIN == User.Identity.Name).ToList();

    лучше
    var lessons = db.Lessons.Where(j => j.TeacherId == User.Id).ToList();

    4. Дальше пытаюсь разобраться, что и как Вы хотите найти
    var pr = db.Jpredmets.FirstOfDefault(gr => gr.ID == id).GR;

    Что такое GR я так и не понял. Можно подумать, что сущность группы, но он string. Имя группы? Каждый предмет привязан к конкретной группе?

    Мой вариант как должно быть
    var group = db.Lessons.Find(l => l.Id == id).Group;

    где Group - сущность, которая связана с lesson как один-ко-многим. Примерная модель
    public class Group
    {
    	public int Id { get; set; }
    	public string Name { get; set; }    // название группы
    	public ICollection<Lesson> Lessons { get; set; }    // предметы
    	public ICollection<Learner> Learners { get; set; }  // ученики
    }

    var kont = db.Kontingents.Where(k => k.GRUPPA == pr).ToList();

    Что такое kontingents? Ученики? Тогда мой вариант выглядел бы так
    var learners = db.Learners.Where(k => k.GroupId == group.Id);

    var jocenki = db.Jpredmets.Include(t => t.Jjours).FirstOrDefault(t => t.ID == id);

    Чтотако Jjours я даже интуитивно догадаться не смог. Судя по модели, это сущность которая хранит в себе оценку, дату, когда ее поставили и т.д. Но результат Вы назвали jocenki, а оценок там не будет. Там будут предметы в которых сразу же будут подтянуты данные о Jjours. И вы опять находите предмет, который уже нашли, когда искали группу. Можно было сделать так
    var lesson = db.Lessons.Find(l => l.Id == id).Include(t => t.Jjours);
    var group = lesson.Group;

    Дальше я предполагаю, что должно быть так
    var jour = new Journalsliv();
    jour.Learners = learners;
    jour.Jjoursliv= group.Jjours;

    Это все можно было упростить, сделав так
    var group = db.Lessons.Find(l => l.Id == id).Include(t => t.Jjours).Group;
    var jour = new Journalsliv
    {
    	Learners = db.Learners.Where(k => k.GroupId == group.Id).ToList(),
    	Jjoursliv = group.Jjours.OrderBy(j => j.Date).ToList()  // на всякий случай сортируем по дате
    }

    5. Ну и по выводу на клиенте. Я не знаю, как у Вас в задании, но выводить даты в ширину, это будет жестоко, если их надо будет вывести за достаточно длительный период. В общем дат может быть бесконечно, а кол-во учеников всегда ограничено. Я бы сделал наоборот: ученики - поля (в ширину), а даты - записи ( в длину).

    Ну и главная ошибка у Вас в этом коде
    @foreach (var roc in Model.Jjoursliv)
    {
        <tr>
            <td>@roc.IIN</td>
            @foreach (var roc2 in Model.Jjoursliv)
            {
                <td>@roc2.OCENKA</td>
            }
        </tr>
    }

    Мне совсем не понятна логика хранения оценок, раз Вы пытаетесь их таким способом достать. Судя по Вашему коду Jjoursliv это коллекция Jjour, а Jjour - это одна оценка для одного ученика. И кодом выше Вы для каждого ученика выводите оценки других учеников, т.е. для каждого вы выведе одну и туже последовательность оценок других учеников, вот они у Вас и выглядят одинакого.
    Вам нужно сначала сгруппировать все оценки по имени
    var learners = Model.Jjoursliv.GroupBy(j => j.IIN)
    Так Вы получите коллекцию учеников, которая будет сосотоять из коллеции оценок.
    И тогда это можно вывести так
    @foreach (var learner in learners)
    {
        <tr>
            <td>@learner.First().IIN</td>
            @foreach (var jour in learner)
            {
                <td>@jour.OCENKA</td>
            }
        </tr>
    }

    Резюмируя, хочу порекомендовать: разобраться повнимательней что делает Include и как работает ToList() и в каких случаях он нужен; пересмотреть структуру бд, есть ошибки, поэтому возникли сложности с пониманием как нужно делать выборку.
    Ответ написан
  • Как заполнить таблицу с помощью ajax?

    @kttotto
    пофиг на чем писать
    На всякий случай проверил примеры здесь и здесь и все таки не нашел там второго параметра "name" как у Вас
    { data: "StudentGroupNumber", name:"StudentGroupNumber" },

    И я обычно добавляю <tbody></tbody>, так надежнее)
    Ответ написан
    Комментировать
  • Насколько готов к продакшену asp.net core?

    @kttotto
    пофиг на чем писать
    Что такое "реальные задачи"?
    В нашей конторе уже два немаленьких проекта сдали реализованные на asp core. Но работают они правда на .net 4.61, стабильно и уверенно. Я пока еще не сталкивался с проблемами в нем, чтобы сказать, что сырой. Как по мне, то он дает гораздо больше возможностей в работе, чем mvc5.
    Ответ написан
    Комментировать
  • Существуют ли паттерны программирования, чтобы упростить большое кол-во условий?

    @kttotto
    пофиг на чем писать
    Если условия не линейные, то это "конечный автомат".
    Ответ написан
    Комментировать
  • Не удалось найти Nuget пакет. Пакет с таким идентификатором отсутствует в след источниках?

    @kttotto
    пофиг на чем писать
    Попробуйте обновить Nuget manager. Очень часто такая ошибка бывает из-за этого.
    Ответ написан
    Комментировать
  • Как сделать чтобы фигурная скобка закрывалась автоматически в Visual Studio 2017?

    @kttotto
    пофиг на чем писать
    Форматирование настраивается Tools -> Options -> TextEditor -> (<C#>) -> CodeStyle -> Formatting
    Ответ написан
    Комментировать
  • Как выбрать уникальные значение из результатов поиска?

    @kttotto
    пофиг на чем писать
    db.Library.Where(x => x.FIO == "Антонов Антон Антонович").GroupBy(x => x.KNIGI).Select(x => x.First())
    Ответ написан
  • Доставка push - уведомлений через Web - интерфейс?

    @kttotto
    пофиг на чем писать
    Не совсем понятен вопрос.

    Если используется web froms, значит он должен отдавать html странички, значит там можно использовать js со всеми вытекающими, например использовать SignalR. Первое, что нагуглилось
    Can SignalR be used with asp.net WebForms?
    Добавление SignalR в проект ASP.NET WebForms

    Но даже если Вы пишете отдельное приложение под андроид на xamarin, то тоже гуглится куча вариантов. Вот первый SignalR xamarin
    Ответ написан
  • Как сохранить данные со связью многие ко многим?

    @kttotto
    пофиг на чем писать
    EF самостоятельно создает промежуточные таблицы при отношении многие ко многим. Вам достаточно указать эту связь между таблицами Project и Person. Руками делать их нет необходимости.
    Ответ написан
    2 комментария
  • ASP.NET MVC. Сколько памяти потребляет стандартное приложение в нормальных условиях?

    @kttotto
    пофиг на чем писать
    Странно поставлен вопрос. Что значит стандартные условия и нормальное приложение? То, что Вы стек перечислили, ничего не говорит.
    У Вас есть какая то логика, эта логика создает объекты. Вы грузите данные, эти данные занимают оперативку в памяти. Какого размера объекты, сколько их, какого размера данными Вы оперируете? Вот на это и смотрите. Избегайте лишних алокаций, следите за большими объектами (больше 85 000 байт), в случае чего вовремя вызывая чистку GC.
    Ответ написан
    Комментировать
  • Как обрабатывать данные в wpf textbox, C#?

    @kttotto
    пофиг на чем писать
    Можно двумя способами. Первый, это по старинке в коде сделать обработчик события клика на кнопку и там внутри взять значения из текстбоксов. Второй, это сделать привязку к модели, в замле, через атрибут binding связываете контрол с моделью и на кнопку делаете привязку к команде, которая будет брать данные из модели. Об этом варианте упомянул Станислав Макаров.
    Ответ написан
    1 комментарий
  • Как сделать сохранение списка итемов чтоб не перезагружались при каждом переходе обратно в Vue?

    @kttotto
    пофиг на чем писать
    Можно закешировать запрос, установив параметр аякс запроса cache=true.
    Можно использовать внутреннее хранилище, первый ответ запомнили, последующие отдаете его. Но в этом случае надо сделать кнопочку для списка "обновить".
    Ответ написан
    Комментировать
  • Какой ioc-контейнер является стандартом в .net?

    @kttotto
    пофиг на чем писать
    Никакой. На вкус и цвет, как говорится.
    Ответ написан
    Комментировать