public static MealEF UpdateFromDetached(this MealEF AttachedEF, MealEF DetachedEF)
        {
            if (AttachedEF is null)
            {
                throw new ArgumentNullException(nameof(AttachedEF));
            }

            if (DetachedEF is null)
            {
                throw new ArgumentNullException(nameof(DetachedEF));
            }

            if (AttachedEF.Id != DetachedEF.Id)
            {
                throw new Exception("Cannot update MealEF entity as it is not the same.");
            }

            if ((AttachedEF != default) && (DetachedEF != default))
            {
                //AttachedEF.MealsComposition = //DetachedEF.MealsComposition;
                //AttachedEF.MealsComposition
                //    .ToList()
                //    .UpdateListFromDetached(DetachedEF.MealsComposition.ToList());

                AttachedEF          = AttachedEF.FillFromMultiLanguageString(DetachedEF.ExtractToMultiLanguageString());
                AttachedEF.Supplier = DetachedEF.Supplier;
                AttachedEF.MealType = DetachedEF.MealType;
            }

            return(AttachedEF);
        }
        public static MealTO ToTranfertsObject(this MealEF Meal)
        {
            if (Meal is null)
            {
                throw new ArgumentNullException(nameof(Meal));
            }

            return(new MealTO
            {
                Id = Meal.Id,
                Name = Meal.ExtractToMultiLanguageString(),
                Ingredients = Meal.MealsComposition?.Select(x => x.Ingredient.ToTranfertsObject()).ToList(),
                Supplier = Meal.Supplier.ToTranfertsObject(),
                MealType = Meal.MealType,
            });
        }