gpt4 book ai didi

c# - 错误 OnModelCreating (ModelBuilder)' : no suitable method found to override

转载 作者:行者123 更新时间:2023-12-05 07:11:26 31 4
gpt4 key购买 nike

在一个新的asp.net core 3.1项目中返回上面的错误信息。我有一个根据 Text 配置的多对多关系

不确定为什么会发生这种情况,但我已将 EntityFrameworkCore 包添加到项目中,所以我不确定为什么会返回此错误。

数据库上下文.cs:

using Microsoft.EntityFrameworkCore;
using Ballista.Models;

namespace Ballista.Data
{
public class AnnouncementsContext : DbContext
{
public AnnouncementsContext (DbContextOptions<AnnouncementsContext> options)
: base(options)
{
}

public DbSet<Announcements> Announcements { get; set; }
public DbSet<AnnouncementTargets> AnnouncementTargets { get; set; }
public DbSet<TargetGroup> TargetGroup { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<AnnouncementTargets>()
.HasKey(at => new { at.AnnouncementID, at.TargetGroupID });

modelBuilder.Entity<AnnouncementTargets>()
.HasOne(at => at.Announcement)
.WithMany(a => a.AnnouncementTargets)
.HasForeignKey(at => at.AnnouncementID);
modelBuilder.Entity<AnnouncementTargets>()
.HasOne(at => at.TargetGroup)
.WithMany(tg => tg.AnnouncementTargets)
.HasForeignKey(t => t.TargetGroupID);
base.OnModelCreating(modelBuilder);
}

}

AnnouncementModels.cs:

using System;
using System.ComponentModel.DataAnnotations;
using System.Collections.Generic;

namespace Ballista.Models
{
public class Announcements
{
public int ID { get; set; }
public string Title { get; set; }
public string SubTitle { get; set; }
public string Content { get; set; }
public ICollection<AnnouncementTargets> AnnouncementTargets { get; set; }

}

public class TargetGroup
{
public int ID { get; set; }
public string Group { get; set; }
public ICollection<AnnouncementTargets> AnnouncementTargets { get; set; }
}

public class AnnouncementTargets
{
public int AnnouncementID { get; set; }
public Announcements Announcement { get; set; }
public int TargetGroupID { get; set; }
public TargetGroup TargetGroup { get; set; }
}
}

我配置了多对多关系,但我不断收到错误消息 <invalid-global-code>.OnModelCreating(ModelBuilder)': no suitable method found to override

最佳答案

DbContext 有 OnModelCreating(DbModelBuilder) 来覆盖。将函数的定义从 OnModelCreating(ModelBuilder modelBuilder) 更改为 OnModelCreating(DbModelBuilder modelBuilder)

protected override void OnModelCreating(DbModelBuilder modelBuilder)

关于c# - 错误 OnModelCreating (ModelBuilder)' : no suitable method found to override,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60770835/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com