Ответы пользователя по тегу C#
  • Entity Framework - как обновить только одну сущность?

    chydaya
    @chydaya
    Необходимо как-то обновить только 1 сущность (то есть 1 таблицу заполнить данными из базы). Например, изменили что-то в базе вне программы и только в одной таблице, как мне обновить только 1 таблицу

    не знаю как работает Entity, но по опыту работы в более адекватных ORM, если что-то изменили в базе, то при обращении к сущности, которая описывает таблицу, данные будут актуальные и без пересоздания ..
    Ответ написан
    1 комментарий
  • C# - как перевести строку в utf16 и сделать маршалинг?

    chydaya
    @chydaya
    например, написать структуру с нашей строкой
    struct StructWithStr
    {
    	[MarshalAs(UnmanagedType.ByValTStr, SizeConst = SIZE_CONST)]
    	public string OurStr; 
    }

    заполнить ее нужной строкой
    написать хелпер сохранения структуры в указатель
    public static class UnMemory<T> where T : struct
    {
        public static void SaveInMem(T memoryObject, ref IntPtr ptr)
        {
            if (default(T).Equals(memoryObject))
            {
                // объявляем указатель на кусок памяти
                ptr = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(T)));
                return;
            }
            if (ptr == IntPtr.Zero)
            {
                // объявляем указатель на кусок памяти
                ptr = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(T)));
                // записываем в память данные структуры
                Marshal.StructureToPtr(memoryObject, ptr, false);
    	}
            else
            {
                // записываем в память данные структуры
                Marshal.StructureToPtr(memoryObject, ptr, true);
            }
        }
    }

    передать IntPtr в библиотеку
    Ответ написан
    Комментировать