AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-16440511

Mehmet's questions

Martin Hope
Mehmet
Asked: 2024-11-09 02:39:39 +0800 CST

.Net Blazor id A instrução MERGE entrou em conflito com o problema de restrição FOREIGN KEY

  • 6

Estou trabalhando em um projeto e há um treinador que sigo. Quando cheguei ao processo de atualização, comecei a obter um erro, quando fui com Breakpoints, percebi que o valor QuizId veio 0000 na fase de salvamento. Quando verifico o banco de dados, todas as minhas conexões estão corretas, os valores de id também estão disponíveis, mas tenho um problema com a saída.

Perguntas.cs

[Key]
public Guid Id { get; set; }
public string Text { get; set; }

public Guid QuizId { get; set; }
[ForeignKey(nameof(QuizId))]
public virtual Quiz Quiz { get; set; }

public virtual ICollection<Options> Options { get; set; } = [];

Opções.cs

[Key]
public int Id { get; set; }

public string Text { get; set; }
public bool IsCorrect { get; set; }
public Guid QuestionId { get; set; }

[ForeignKey(nameof(QuestionId))]
public virtual Questions Questions { get; set; }

Questionário.cs

  [Key]
  public Guid Id { get; set; }
  public string? Name { get; set; }
  public int TotalQuestions { get; set; }
  public int TimeInMinutes { get; set; }
  public bool IsActive { get; set; }

  public Guid CategoryId { get; set; }
  [ForeignKey(nameof(CategoryId))]
  public virtual Category? Category { get; set; }

  public ICollection<Questions> Questions { get; set; } = [];

abaixo está o bloco de código que usei para salvar os dados

public async Task<QuizApiResponse> SaveQuizAsync(QuizSaveDto dto)
{
    var questions = dto.Question.Select(q => new Questions
    {
        Id = Guid.NewGuid(),
        Text = q.Text,
        Options = q.Option.Select(o => new Options
        {
            Id = 0,
            Text = o.Text,
            IsCorrect = o.IsCorrect
        }).ToArray()
    }).ToArray();

    if (dto.Id == Guid.Empty)
    {

        var quiz = new Quiz
        {
            Id = Guid.NewGuid(),
            Name = dto.Name,
            CategoryId = dto.CategoryId,
            TotalQuestions = dto.TotalQuestions,
            TimeInMinutes = dto.TimeInMinutes,
            IsActive = dto.IsActive,
            Questions = questions
        };
        _context.Quizzes.Add(quiz);
    }
    else
    {
        var dbQuiz = await _context.Quizzes.FirstOrDefaultAsync(q => q.Id == dto.Id);//QuizId have
        if (dbQuiz == null)
        {
            return QuizApiResponse.Fail("Quiz doesn't exists");
        }
        dbQuiz.CategoryId = dto.CategoryId;
        dbQuiz.IsActive = dto.IsActive;
        dbQuiz.Name = dto.Name;
        dbQuiz.TimeInMinutes = dto.TimeInMinutes;
        dbQuiz.TotalQuestions = dto.TotalQuestions;
        dbQuiz.Questions = questions;//QuizId is 0000

        _context.Quizzes.Update(dbQuiz);// burada QuizId null
    }

    try
    {
        await _context.SaveChangesAsync();
        return QuizApiResponse.Success();
    }
    catch (Exception ex)
    {
        return QuizApiResponse.Fail(ex.Message);
    }
}

aqui está um visual do meu esquema de banco de dadosbanco de dados

o ponto que detectei quando prossegui com o ponto de interrupção insira a descrição da imagem aqui

o erro que recebo é o seguinte

Microsoft.EntityFrameworkCore.Update[10000] Ocorreu uma exceção no banco de dados ao salvar alterações para o tipo de contexto 'BlazingQuiz.Api.Data.Repositories.QuizContext'. Microsoft.EntityFrameworkCore.DbUpdateException: Ocorreu um erro ao salvar as alterações da entidade. Consulte a exceção interna para obter detalhes. ---> Microsoft.Data.SqlClient.SqlException (0x80131904): A instrução MERGE entrou em conflito com a restrição FOREIGN KEY "FK_Options_Questions_QuestionId". O conflito ocorreu no banco de dados "BlazingQuiz", tabela "dbo.Questions", coluna 'Id'. em Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Ação 1 wrapCloseInAction) at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) em Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)

sql
  • 1 respostas
  • 37 Views
Martin Hope
Mehmet
Asked: 2024-01-03 21:51:31 +0800 CST

Não recebo um erro de código ao fazer upload de um arquivo de imagem, recebo o erro necessário que eu mesmo defini, onde estou fazendo errado?

  • 5

quando quero salvar uma imagem, me deparo com um problema, vem o erro que forcei no modelo, mas não recebo nenhuma linha de erro enquanto a aplicação está rodando, quando vou com break points, vejo que a imagem aparece para o modelo válido, mas o válido retorna falso, mas não consegui encontrar a solução, você pode ajudar?

O campo onde obtenho dados de imagem na minha página Criar

<div class="form-group my-3">
    <label asp-for="UniversityImage"></label>
    <input name="file" type="file" class="form-control" />
</div>

meu painel de administração

 [HttpPost]
 [ValidateAntiForgeryToken]
 public async Task<IActionResult> Create([FromForm] UniversityDtoForInsertion universityDto, IFormFile file)
 {
     if (ModelState.IsValid)
     {
         string path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images", file.FileName);

         await using (var stream = new FileStream(path, FileMode.Create))
         {
             await file.CopyToAsync(stream);
         }
         universityDto.UniversityImage = String.Concat("/images/", file.FileName);
         _serviceManager.UniversityService.CreateUniversity(universityDto);
         TempData["success"] = $"{universityDto.UniversityName} has been created.";
         return RedirectToAction("Index");
     }
     return View();

 }

objeto de transferência de dados

public record UniversityDto
{
    public int UniversityId { get; init; }

    [Required(ErrorMessage = "UniversityName is Required")]
    public string UniversityName { get; init; }

    [Required(ErrorMessage = "UniversityDescription is Required")]
    public string UniversityDescription { get; init; }

    [Required(ErrorMessage = "UniversityAddress is Required")]
    public string UniversityAddress { get; init; }

    [Required(ErrorMessage = "UniversityWebAddress is Required")]
    public string UniversityWebAddress { get; init; }

    [Required(ErrorMessage = "UniversityPhone is Required")]
    public string UniversityPhone { get; init; }

    [Required(ErrorMessage = "UniversityImage is Required")]
    public string UniversityImage { get; set; }

}

Camada IUniversityService

University CreateUniversity(UniversityDtoForInsertion universityDto);

Camada UniversityManager

 public University CreateUniversity(UniversityDtoForInsertion universityDto)
 {
     if (universityDto is null)
     {
         throw new ArgumentNullException(nameof(universityDto));
     }

     University university = _mapper.Map<University>(universityDto);

     _manager.University.Create(university);
     _manager.Save();
     return university;
 }

Camada IUniversityRepository

 public interface IUniversityRepository : IRepositoryBase<University>
 {
     IQueryable<University> GetAllUniversities(bool trackChanges);
     University? GetOneUniversity(int id, bool trackChanges);

     void CreateOneUni(University university);
     void UpdateOneUni(University university);
     void DeleteOneUni(University university);
 }

Camada de repositório universitário

 public void CreateOneUni(University university) => Create(university);

Quando avanço com Breakpoints, o ponto onde mostra o problema está disponível na imagem abaixo, você pode ajudar? insira a descrição da imagem aqui

asp.net-mvc
  • 1 respostas
  • 41 Views
Martin Hope
Mehmet
Asked: 2023-09-08 23:50:39 +0800 CST

ASP .NET Não é possível resolver o serviço por tipo

  • 7

Estou acompanhando um Instrutor, no começo tudo estava indo bem, mas depois que postei o projeto no github, houve alterações nos arquivos do projeto, acho que fiz algo errado, editei o conteúdo depois. Mas tem um ponto que perdi, acho que não consigo estabelecer a conexão com o banco de dados (ou não entendi) também tentei as soluções da página sobre esse assunto, mas não funcionou. Você poderia por favor me ajudar?

o erro que recebo é o seguinte

System.AggregateException: 'Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: Repositories.RepositoryContext Lifetime: Scoped ImplementationType: Repositories.RepositoryContext': Unable to resolve service for type 'Microsoft.EntityFrameworkCore.DbSet1[Entities.Models.Product]' ao tentar ativar 'Repositories.RepositoryContext'.) (Erro ao validar o descritor de serviço 'ServiceType: Repositories.Contracts.IRepositoryManager Lifetime: Scoped ImplementationType: Repositories.RepositoryManager': Não é possível resolver o serviço para digite 'Microsoft.EntityFrameworkCore.DbSet 1[Entities.Models.Product]' while attempting to activate 'Repositories.RepositoryContext'.) (Error while validating the service descriptor 'ServiceType: Repositories.Contracts.IProductRepository Lifetime: Scoped ImplementationType: Repositories.ProductRepository': Unable to resolve service for type 'Microsoft.EntityFrameworkCore.DbSet1[Entities.Models.Product]' ao tentar ativar 'Repositories.RepositoryContext'.)

InvalidOperationException: Unable to resolve service for type 'Microsoft.EntityFrameworkCore.DbSet1[Entities.Models.Product]' ao tentar ativar 'Repositories.RepositoryContext'. `

Verifiquei minhas camadas de repositório uma por uma, verifiquei meus links Program.cs um por um, verifiquei as instruções no site da Microsoft, mas acho que não consegui resolver isso com meu nível atual de conhecimento.

Minha página de contexto do repositório se parece com isso

public class RepositoryContext : DbContext
{
    public DbSet<Product> Products { get; set; } 
    public DbSet<Category> Categories { get; set; } 


    public RepositoryContext(DbContextOptions<RepositoryContext> options, DbSet<Product> products, DbSet<Category> categories) :
        base(options) 
    {
       
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder); 
        modelBuilder.Entity<Product>()
            .HasData(new Product() { Id = 1, ProductName = "Laptop", Price = 1000 },
                new Product() { Id = 2, ProductName = "Keyboard", Price = 500 },
                new Product() { Id = 3, ProductName = "Computer", Price = 2500 },
                new Product() { Id = 4, ProductName = "Monitor", Price = 1000 },
                new Product() { Id = 5, ProductName = "Deck", Price = 500 }
            ); 
        modelBuilder.Entity<Category>()
            .HasData(
                new Category() { CategoryId = 1, CategoryName = "Book" },
                new Category() { CategoryId = 2, CategoryName = "Electronic" });
    }
}

Este é o meu código no início do programa

var builder = WebApplication.CreateBuilder(args);
builder.Services
    .AddControllersWithViews(); 
builder.Services.AddDbContext<RepositoryContext>(options =>
{
    options.UseSqlite(builder.Configuration.GetConnectionString
        ("sqlconnection"), 
        b => b.MigrationsAssembly("StoreApp")); 
});
builder.Services.AddScoped<IRepositoryManager, RepositoryManager>();
builder.Services.AddScoped<IProductRepository, ProductRepository>();


var app = builder.Build();

app.UseStaticFiles(); 
app.UseHttpsRedirection(); 
app.UseRouting(); 


app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}"); 

app.Run();

e os objetos têm esta forma

public class Product
{
    public int Id { get; set; }
    public String? ProductName { get; set; } = String.Empty; 
    public decimal Price { get; set; }
}

    public class Category
    {
        public int CategoryId { get; set; }
        public String? CategoryName { get; set; }= String.Empty;
        
    }
c#
  • 2 respostas
  • 33 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve