![](/img/trans.png)
[英]ApplicationDbContext.OnModelCreating(ModelBuilder): no suitable method found to override
[英]Error OnModelCreating(ModelBuilder)': no suitable method found to override
在新的 asp.net core 3.1 项目中返回上述错误消息。 我有一个根据Text配置的多对多关系
不完全确定为什么会发生这种情况,但我已将 EntityFrameworkCore 包添加到项目中,所以我不确定它为什么返回此错误。
DBContext.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)
Al menos según el código que publicaste, la declaración del método está fuera de tu clase AnnouncementsContext。 – dar un toque 20 de marzo de 2020 a las 8:52
MUCHAS GRACIAS me pasaba lo mismo!!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.