Comments
Чем больше типов, вложенности и il кода, тем медленнее ПО, так как jit`у сложнее оптимизировать программу. Поэтому подобного рода строгая типизация приведет к серьезным тормозам в проекте.

В дотнете структура вида


struct Wrapper<T>
{
      public T Value {get; set;}
}

эквивалентна по производительности манипуляциям со значениям напрямую, JIT в итоге генерирует такой же ассемблерный код. Но придётся уйти от иерархий наследования и потреблять интерфейсы посредством конструкций вида


interface IFoo
{
      void Bar();
}
void Do(T x) where T : IFoo
{
     x.Bar();
}

чтобы избежать боксинга.

просто заведите типы GroupId, UserId и так далее

Как к такому отнесётся EntityFramework скажем 6 и Core? Есть ли опыт работы, как усложнится работа с базой, какие-то наблюдения по удобству работы?

Мне вот тоже интересно, наверное появится слой мапинга где используя FluentApi прокинут свойства, или не дай бог там будут модели таблиц с неявным преобразованием из наших чудесных моделей в бд
Ну можно сделать memento и маппить на EF классы и обратно например. Или использовать backing fields, owned entites, value conversion.
UFO landed and left these words here
Only those users with full accounts are able to leave comments. Log in, please.