Алгоритм метки для оси графика

Вы можете обновить значения, не перечисляя все свойства следующим образом:

var entity = _collection.Find(item.Id);
if (entity == null)
{
    return;
}

_context.Entry(entity).CurrentValues.SetValues(item);

Метод обновления Entity Framework работает так же.

Также существуют другие опции, такие как AutoMapper или Mapster.

24
задан Nick 25 October 2008 в 23:54
поделиться

3 ответа

Я пользовался библиотекой графика. Это - открытый исходный код и делает поколение оси/галочки вполне хорошо. Я предложил бы смотреть на, он - код и зажимающий некоторые идеи оттуда.

0
ответ дан 29 November 2019 в 00:30
поделиться

каков Ваш язык разработки? Я имею контроль графиком в C++, который решает эту проблему легко с помощью комбинации логарифма, celings и т.д., Если Вы хотите, могут объяснить код для Вас.

-4
ответ дан 29 November 2019 в 00:30
поделиться

Возьмите самый длинный из сегментов о нуле (или целый график, если нуль не находится в диапазоне) - например, если Вы имеете что-то на диапазоне [-5, 1], берете [-5,0].

Фигура приблизительно, какой длины этот сегмент будет в галочках. Это просто делит длину на ширину галочки. Поэтому предположите, что в методе говорится, что мы можем вставить 11 галочек от-5 до 0. Это - наша верхняя граница. Для более короткой стороны мы просто зеркально отразим результат на более длинной стороне.

Теперь попытка вставить как многие (до 11) галочки в, такой, что маркер для каждой галочки в форме i*10*10^n, i*5*10^n, i*2*10^n, где n является целым числом, и я - индекс галочки. Теперь это - проблема оптимизации - мы хотим максимизировать количество галочек, которые мы можем вставить, одновременно минимизируя расстояние между последней галочкой и концом результата. Поэтому присвойте счет к получению стольких галочек, сколько мы можем, меньше, чем наша верхняя граница, и присваивать счет получению последней галочки близко к n - необходимо будет экспериментировать здесь.

В вышеупомянутом примере, попробуйте n = 1. Мы получаем 1 галочку (в i=0). n = 2 дает нам 1 галочку, и мы далее от нижней границы, таким образом, мы знаем, что должны пойти другим путем. n = 0 дает нам 6 галочек, в каждой целочисленной точке точки. n =-1 дает нам 12 галочек (0,-0.5...,-5.0). n =-2 дает нам 24 галочки, и так далее. Алгоритм выигрыша даст им каждого, который счет - выше означает лучший метод.

Делают это снова для меня * 5 * 10^n, и i*2*10^n, и берут тот с лучшим счетом.

(как алгоритм выигрыша в качестве примера, скажите, что счет является расстоянием до прошлые разы галочки максимального количества галочек минус необходимое число. Это, вероятно, будет плохо, но это будет служить достойной начальной точкой).

2
ответ дан 29 November 2019 в 00:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: