Ответы пользователя по тегу C#
  • Где нарушение внешнего ключа?

    @Prorom-exe Автор вопроса
    .NET developer
    Проблема была в том, что DbContext отслеживает этот объект. И есть два варианта решения AsNoTraking() либо ручками прописать создание нового объекта
    Ответ написан
    Комментировать
  • Не приходит значение View?

    @Prorom-exe Автор вопроса
    .NET developer
    Решение было следующее, EF нужно было прописать провайдер для того, чтобы он мог мапать числа с плавающей точкой адекватно.
    //в стартапе
    services.AddControllersWithViews(
                    options => options.ModelBinderProviders.Insert(0, new InvariantDecimalModelBinderProvider()));
    
    public class InvariantDecimalModelBinderProvider : IModelBinderProvider
        {
            private readonly ILoggerFactory loggerFactory;
    
            public IModelBinder GetBinder(ModelBinderProviderContext context)
            {
                if (context == null) throw new ArgumentNullException(nameof(context));
    
                if (!context.Metadata.IsComplexType && (context.Metadata.ModelType == typeof(decimal) || context.Metadata.ModelType == typeof(decimal?)))
                {
                    ILoggerFactory loggerFactory = context.Services.GetRequiredService<ILoggerFactory>();
                    return new InvariantDecimalModelBinder(context.Metadata.ModelType, loggerFactory);
                }
    
                return null;
            }
        }
    
        public class InvariantDecimalModelBinder : IModelBinder
        {
            private readonly SimpleTypeModelBinder _baseBinder;
    
            public InvariantDecimalModelBinder(Type modelType, ILoggerFactory loggerFactory)
            {
                _baseBinder = new SimpleTypeModelBinder(modelType, loggerFactory);
            }
    
            public Task BindModelAsync(ModelBindingContext bindingContext)
            {
                if (bindingContext == null) throw new ArgumentNullException(nameof(bindingContext));
    
                var valueProviderResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
    
                if (valueProviderResult != ValueProviderResult.None)
                {
                    bindingContext.ModelState.SetModelValue(bindingContext.ModelName, valueProviderResult);
    
                    var valueAsString = valueProviderResult.FirstValue;
                    decimal result;
    
                   
                    if (decimal.TryParse(valueAsString, NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out result))
                    {
                        bindingContext.Result = ModelBindingResult.Success(result);
                        return Task.CompletedTask;
                    }
                }
    
               it
                return _baseBinder.BindModelAsync(bindingContext);
            }
        }
    Ответ написан
    Комментировать
  • Нужна помощь с тех. заданием. Что гуглить?

    @Prorom-exe
    .NET developer
    Если только начинаешь изучать ASP то для того,чтобы грамотно и с пониманием, а не копипастом все сделать. придётся для начала хорошенько в основах разобраться и повышать свой скилл. А не сразу на это лезть)
    Ответ написан
    Комментировать
  • Как обновить данные DataGrid без зависания и чрезмерной нагрузки?

    @Prorom-exe
    .NET developer
    Методом ToList() ты высасываешь все объекты, попробуй вручную через Select брать только те, что нужны.
    Ответ написан
    Комментировать
  • Не выводится объекты определенного url адреса?

    @Prorom-exe
    .NET developer
    Ответил в аналогичном вопросе тебе. Там все описал. Ищи решения таких легких вопросов сам, литературы полно. А иначе как научишься программировать, на форуме?
    Ответ написан
  • Как правильно настроить связи в Entity Framework Core?

    @Prorom-exe
    .NET developer
    Как то все не очень красиво сделано. Атрибуты [Column("name")] излишни. Понимаю что один алгоритм имеет несколько параметров, соответственно я бы у AlgorithmID добавил атрибут ForignKey и у списка List модификатор virtual
    Ответ написан
    Комментировать
  • Как сформировать JSON?

    @Prorom-exe
    .NET developer
    Скорее всего в твоем списке не сами объекты, а ссылки на них в бд. Нужно Select достать все, что нужно. Есть еще вариант использовать NewtonSoft.Json
    Ответ написан
    Комментировать
  • Товары у которых есть данный url адрес не выводится и вдобавок товары помечены как избранные перестали добавлятся?

    @Prorom-exe
    .NET developer
    Проблема рядовая, поставь точки остановки пройдись ручками по методу. Глянь какой объект уходит на вьюшку. Бежать на форум за ответом самый простой вариант))

    P.S Лучше для фильтрации на контроллер отправлять не имя, а Id. И вместо того,чтобы городить else If используй switch
    Ответ написан