ASP net Core Razor Pages - сплит модели для EF и представлений

Вы можете создать шаблон функции следующим образом:

template<int R, int C>
void myFunction(double (&myArray)[R][C])
{
    myArray[x][y] = 5;
    etc...
}

Затем у вас есть размеры размеров через R и C. Для каждого размера массива будет создана другая функция, поэтому, если ваша функция большая и вы называете это множеством различных размеров массивов, это может быть дорогостоящим. Вы можете использовать его как оболочку над такой функцией, хотя:

void myFunction(double * arr, int R, int C)
{
    arr[x * C + y] = 5;
    etc...
}

Он обрабатывает массив как одномерный и использует арифметику для вычисления смещений индексов. В этом случае вы должны определить шаблон следующим образом:

template<int C, int R>
void myFunction(double (&myArray)[R][C])
{
    myFunction(*myArray, R, C);
}
0
задан flix 3 March 2019 в 19:43
поделиться

2 ответа

У меня были похожие мысли (особенно когда я использовал строковые поля поддержки для BLOB-объектов JSON). Вы можете использовать анонимные типы для ограничения возвращаемых данных.

Как в этом примере ( https://docs.microsoft.com/en-us/ef/core/querying/client-eval )

var blogs = context.Blogs
    .OrderByDescending(blog => blog.Rating)
    .Select(blog => new
    {
        Id = blog.BlogId,
        Url = StandardizeUrl(blog.Url)
    })
    .ToList();

EF Core 2.1 также представил типы запросов , которые могут помочь сделать отношения между объектами вашего представления и моделью БД более ясными.

0
ответ дан Brad Patton 3 March 2019 в 19:43
поделиться

Я решил разделить решение на Чистую архитектуру (Web, Infrastructure и Core Layer). https://docs.microsoft.com/en-us/dotnet/standard/modern-web-apps-azure-architecture/common-web-application-architectures

Найти его лучше всего подходит, и его будет очень легко расширить, когда приложение начнет расти.

0
ответ дан flix 3 March 2019 в 19:43
поделиться
Другие вопросы по тегам:

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