• Как смапить свойство типа 'Dictionary' в Entity Framework?

    @kttotto
    пофиг на чем писать
    Вы в одном поле собираетесь хранить целай массив? А потом, чтобы достать одно значение будете читать весь массив из поля?
    Это не верный подход, но можно реализовать сериализацией массива в json при записи и при чтении - десериализацией. Например:

    public class VmWord
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Localization { get; set; }
    
        [NotMapped]
        public Dictionary<string, string> Localizations 
        {
            get { return JsonConvert.DeseriazeObject<Dictionary<string, string>>(Localization.ToList()); }
            set { Localization = JsonConvert.SerializeObject(value); }
        }
    }

    Но верный подход будет по другому:

    public class VmWord
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public virtual List<string> Localizations { get; set; }
    }
    
    public class Localization
    {
        public int Id { get; set; }
        public string Key { get; set; }
        public string Value { get; set; }
        public virtual VmWord VmWord { get; set; }
    }

    И достать по ключу потом:

    context.VmWord.Localizations.FirstOrDefault(x => x.Key == key)?.Value;
    Ответ написан
    Комментировать
  • Как стать web разработчиком на Python не прикасаясь к html, css и javascript?

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

    @kttotto
    пофиг на чем писать
    Вы можете сделать сколько угодно конекшин стрингов в настройках, у каждого свое имя. Сделайте абстракцию над подключением к бд, туда будете передавать имя конекшина и работайте с методами этой абстракции уже.

    В простом виде это примерно так
    <connectionStrings>
      <add name="DB1Connection" connectionString="data source=(local);initial catalog=myDB1;" />
      <add name="DB2Connection1" connectionString="data source=(local);initial catalog=myDB2;" />
      <add name="DB3Connection1" connectionString="data source=(local);initial catalog=myDB3;" />
    </connectionStrings>
    
    connectionStringName = "DB3Connection1";
    
    public class MyDbContext : DbContext
    {
    	public MyDbContext(string connectionStringName) : base(connectionStringName)
    	{	}
    }

    Если схемы баз один одинаковые, то достаточно одного класса контекста

    Как только пользователь тыкнул на другой сервер, Вы разлогинили его, создали новый конекшин и залогинили его по новой, но в выбранном контексте и перегрузили страницу.
    Ответ написан
    4 комментария
  • Как выбрать минимальное значение из количества одинаковых элементов массива?

    @kttotto
    пофиг на чем писать
    Я не по части питона, но вот, ловите
    a = [1, 2, 4, 4, 2, 2, 1, 4]
    length = len(a)
    
    i = 0
    max = a[i]
    
    while (i < length):
    	if(a[i] > max):
    		max = a[i]
    	i += 1
    
    counter = 0
    i = 0
    result = length
    
    while (i < length):
    	if(max == a[i]):
    		counter = counter + 1
    		if(i == (length - 1) or a[i+1] != max):
    			if(counter < result):
    				result = counter
    				counter = 0
    	i += 1
    
    print(result)
    input()
    Ответ написан
    Комментировать
  • Поэтапный (частичный) перевод веб-приложения с MVC3 на MVC5 или Core?

    @kttotto
    пофиг на чем писать
    Тут надо в код смотреть, все от многого зависит: как реализованы права, роли, как аутентификация работает. В мвс3 идентити еще не было, надо было руками мембешип провайдер реализовывать, в каком виде Вы его переносить собираетесь?
    И потом, почему на мвс5, а не сразу на коре?
    Не зная структуры, тяжело что-то сказать однозначно. Но я бы, наверное, в такой ситуации завел новый проект и просто по тихому переносил в него куски кода, которые можно перенести, а что-то писал по новой. Если переносить с хвоста, то можно упереться в тупик, когда ядро невозможно будет изменить.
    Ответ написан
    Комментировать
  • Как можно записать String в Int с автоматическим упрощением?

    @kttotto
    пофиг на чем писать
    Метод Convert.ToInt32(string) конвертирует строковое значение в эквивалентное целое число. Этот метод не занимается парсингом Вашего выражения, чтобы построить из Вашей строки дерево выражений и конечно не пытается вычислить конечное значение.

    А как можно преобразовать строку в Int и в итоге получить 9 в функции

    Можно все. Но для этого нужно либо самому реализовать подобный функционал, либо на просторах найти готовую реализацию. Родного такого метода в C# нет.
    Ответ написан
  • Как выполняется такая конструкция в языках программирования?

    @kttotto
    пофиг на чем писать
    То, о чем Вы говорите, справедливо только для динамически типизированных языков, таких как javascript. Это там можно сделать что-то подобное
    var predicate = true;
    var anyMethod = function() { ... }
    if(predicate && anyMethod){ ... }

    В C# Вы себе такого позволить не сможете, там логические операторы можно применять только к типу bool. В случае C# anyMethod будет, наверное, delegate. В C# придется написать так
    if(predicate && anyMethod != null){ ... }
    Никакой матери спецификаций нет, каждый язык имеет свою спецификацию. Но такие языки как C++, С#, Java javascript считаются си-подобными языками, т.е. с точки зрения синтаксиса, являются подмножеством языка С. Поэтому все эти языки могут иметь сходства синтаксиса и может показаться что так должно быть везде. Но в других языках синтаксис операторов && и || может выглядеть по другому или его вообще может не быть и остаться только логические & и |.
    Ответ написан
    Комментировать
  • Что нужно знать начинающему разработчику asp.net mvc?

    @kttotto
    пофиг на чем писать
    получается чтобы стать начинающим разработчиком, необходимо сходу знать весь стек, пускай и не совсем глубоко?

    Совершенно верно. К этому списку еще sql добавьте.
    Ответ написан
  • Какой выбрать фреймворк для фронтенда?

    @kttotto
    пофиг на чем писать
    Если без js, то никакой никакой, делайте статичными страницами. Хотите интерактивность и как положено, придется разбираться в js.
    Ответ написан
  • На сколько сильно программирование .ASP NET MVC зависит от C#?

    @kttotto
    пофиг на чем писать
    Непонятно зачем изучать ASP NET MVC, если не собираешься под него писать код. А если собираешься писать код, то каким образом это делать не зная самого языка C#?

    Ответ: НЕТ, не стоит.
    Ответ написан
    Комментировать
  • Как узнать порядковый номер строки в столбце(Entity Framework С#)?

    @kttotto
    пофиг на чем писать
    В бд строки могут лежать в любом непредсказуемом для Вас порядке. И какая строка на каком месте находится, Вас интересовать не должно. То, что Вы видите строки в каком то порядке, это сортировка по дефолту. Если Вы хотите взять порядковый номер строки, то нужно указать порядковый номер относительно какого то поля, т.е. таблицу прежде надо отсортировать по нужному полю (Id, DateTime, Name и т.д.), а потом можете брать запись отсчитывая с любого конца. Поэтому это примерно будет выглядеть так
    bd.User.OrderBy(x => x.Id).ElementAt(5);
    Если надо именно порядковый номер узнать определенной записи, то можно так
    bd.User.OrderBy(x => x.Id).ToList().FindIndex(x => x.Name == "Vasya");
    Ответ написан
    1 комментарий
  • Нужно ли защищаться от XSS, который вставлен в GET запрос (Я попробовал написать в page значение alert(1), но ничего не произошло)?

    @kttotto
    пофиг на чем писать
    Защищаться надо если значение этого параметра будет вставляться как есть в html разметку, там Ваш алерт отработает. Если в разметку он не попадет, то он и не отработает. Но нет гарантии, что в процессе разработки кто-то забудет сделать sanitize на Ваш параметр, поэтому об этом надо думать в тот момент когда принимаете данные с формы или отображаете параметры с url.
    Ответ написан
    Комментировать
  • C#, Ошибка System.NullReferenceException при работе с базой данных MySql. Как исправить?

    @kttotto
    пофиг на чем писать
    Одного слова NullReferenceException мало для предположений. Вам наверняка вместе с этим и стектрей дает и строку в которой ошибка и возможно даже при вызове какого метода на каком поле. Это сообщение говорит о том, что что-то не проинициализированно и Вы на нем хотите либо свойство прочитать, либо метод вызвать.

    Судя по коду могу предположить, что Select Login from Accounts WHERE ... не может дать Вам скалярное значение. Нужно либо запрос другой писать, либо вызывать другой метод на command.
    Ответ написан
    Комментировать
  • Заменить последний символ строки на большой в C#, как?

    @kttotto
    пофиг на чем писать
    На коленке, но примерно так
    var lines = File.ReadLines(path);
    foreach(var line in lines)
    {
    	var index = line.Length - 1
    	line[index] = line[index].ToUpper()
    }
    
    var text = string.Join(lines);
    File.WriteAllText(path, text);
    Ответ написан
    Комментировать
  • Где у меня ошибка в сниппете?

    @kttotto
    пофиг на чем писать
    И куда Вы эту строку засовываете? Зачем Вам &quot;? С этим кодом строка станет просто текстом.
    Ответ написан
  • Файл занят своим же процессом ....!?

    @kttotto
    пофиг на чем писать
    Вы не можете сохранить файл, который читаете. Вы можете открыть файл для чтения и можете открыть для записи. Файловый поток нельзя открыть одновременно в двух режимах, и на чтение, и на запись. Если Вы открыли файл на чтение, то прежде чем его перезаписать, поток надо закрыть.

    В Вашем случае возможно не использовался using или dispose, что-то, что закроет поток, ну или явно закрыть поток.
    В общем, порядок такой: открыли файл на чтение (получили текст или байты), закрыли поток, изменили содержимое, открыли файл на запись, перезаписали, закрыли поток.

    Если Вы используете класс File для работы с файлами, то закрытие он выполняет самостоятельно автоматом. Если же поток открывается, например, через StreamWriter, то за закрытием надо следить самостоятельно.
    Ответ написан
    Комментировать
  • Где ошибка у меня в парсере html C#?

    @kttotto
    пофиг на чем писать
    Кажется Вы не разбирались в работе парсера и не читали документацию AngleSharp.

    Во первых, как дебажить парсер по https://mysite/forums? Представлять мысленно, догадываясь интуитивно?

    Во вторых, Вы хотите получить значение атрибута data-previewurl, но результат mysite.ru/threads/61443, а это уже значение другого атрибута - href, а в вопросе Вы говорите "но заголовки не парсятся". Вы определитесь: Вам нужен заголовок или значение атрибута и какого?

    В третьих, если бы Вы прочитали документацию, то узнали бы как получить значение атрибута, я в Вашем проекте добавил в метод Parse
    if (item.HasAttribute("data-previewurl"))
    {
    	list.Add(item.GetAttribute("data-previewurl"));
    }

    Для этого пришлось захардкодить Ваш html блок.
    Ну и собственно ваша потребность будет выглядеть как
    "mysite.ru/" + item.GetAttribute("data-previewurl")

    Все прекрасно работает.
    Ответ написан
    Комментировать
  • Не отображаются картинки в html письме на gmail?

    @kttotto
    пофиг на чем писать
    Попробуйте в настройках почты разрешить html вложения.
    Ответ написан
    Комментировать
  • Как называть свои свойства и методы при наследовании от других классов?

    @kttotto
    пофиг на чем писать
    Использовать пространства имен.
    Ответ написан
    Комментировать