c# - CS0051:可访问性不一致
问题描述
因此,我们提供了一个模拟亚马逊订单数据库,并且我们正在使用 ASP.NET、实体框架和 MVC 设置。几周来这一切都运行良好,直到我不得不在 VS2019 上完成任务时它冻结了。重新启动后,我现在得到 CS0051: Inconsistent aaccessibility: parameter type 'AmazonOrdersContext' is less access than method 'ItemsController.ItemsController(AmazonOrdersContext)'
这是我的 ItemsController 代码,其中包含相关的导入:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using AOWebApp.Models;
using AOWebApp.ViewModels;
using AOWebApp.Data;
using AOWebApp.Helpers;
namespace AOWebApp.Controllers
{
public class ItemsController : Controller
{
private readonly AmazonOrdersContext _context;
public ItemsController(AmazonOrdersContext context)
{
_context = context;
}
...
这是我的 AmazonOrdersContext 代码:
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;
using AOWebApp.Models;
#nullable disable
namespace AOWebApp.Data
{
public partial class AmazonOrdersContext : DbContext
{
public AmazonOrdersContext()
{
}
public AmazonOrdersContext(DbContextOptions<AmazonOrdersContext> options)
: base(options)
{
}
public virtual DbSet<Address> Addresses { get; set; }
public virtual DbSet<Customer> Customers { get; set; }
public virtual DbSet<CustomerOrder> CustomerOrders { get; set; }
public virtual DbSet<Item> Items { get; set; }
public virtual DbSet<ItemCategory> ItemCategories { get; set; }
public virtual DbSet<ItemMarkupHistory> ItemMarkupHistories { get; set; }
public virtual DbSet<ItemsInOrder> ItemsInOrders { get; set; }
public virtual DbSet<Review> Reviews { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasAnnotation("Relational:Collation", "SQL_Latin1_General_CP1_CI_AS");
modelBuilder.Entity<Address>(entity =>
{
entity.Property(e => e.AddressId).HasColumnName("addressID");
entity.Property(e => e.AddressLine)
.IsRequired()
.HasMaxLength(100)
.IsUnicode(false)
.HasColumnName("addressLine");
entity.Property(e => e.Country)
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnName("country");
entity.Property(e => e.Postcode)
.IsRequired()
.HasMaxLength(10)
.IsUnicode(false)
.HasColumnName("postcode");
entity.Property(e => e.Region)
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnName("region");
entity.Property(e => e.Suburb)
.IsRequired()
.HasMaxLength(50)
.IsUnicode(false)
.HasColumnName("suburb");
});
modelBuilder.Entity<Customer>(entity =>
{
entity.Property(e => e.CustomerId).HasColumnName("customerID");
entity.Property(e => e.AddressId).HasColumnName("addressID");
entity.Property(e => e.Email)
.IsRequired()
.HasMaxLength(100)
.IsUnicode(false)
.HasColumnName("email");
entity.Property(e => e.FirstName)
.IsRequired()
.HasMaxLength(100)
.IsUnicode(false)
.HasColumnName("firstName");
entity.Property(e => e.LastName)
.IsRequired()
.HasMaxLength(100)
.IsUnicode(false)
.HasColumnName("lastName");
entity.Property(e => e.MainPhoneNumber)
.IsRequired()
.HasMaxLength(15)
.IsUnicode(false)
.HasColumnName("mainPhoneNumber");
entity.Property(e => e.SecondaryPhoneNumber)
.HasMaxLength(15)
.IsUnicode(false)
.HasColumnName("secondaryPhoneNumber");
entity.HasOne(d => d.Address)
.WithMany(p => p.Customers)
.HasForeignKey(d => d.AddressId)
.HasConstraintName("fk_address");
});
modelBuilder.Entity<CustomerOrder>(entity =>
{
entity.HasKey(e => e.OrderNumber)
.HasName("pk_orderNumber");
entity.Property(e => e.OrderNumber).HasColumnName("orderNumber");
entity.Property(e => e.CustomerId).HasColumnName("customerID");
entity.Property(e => e.DatePaid)
.HasColumnType("date")
.HasColumnName("datePaid");
entity.Property(e => e.OrderDate)
.HasColumnType("date")
.HasColumnName("orderDate");
entity.HasOne(d => d.Customer)
.WithMany(p => p.CustomerOrders)
.HasForeignKey(d => d.CustomerId)
.HasConstraintName("fk_customerID");
});
modelBuilder.Entity<Item>(entity =>
{
entity.Property(e => e.ItemId).HasColumnName("itemID");
entity.Property(e => e.CategoryId).HasColumnName("categoryID");
entity.Property(e => e.ItemCost)
.HasColumnType("decimal(10, 2)")
.HasColumnName("itemCost");
entity.Property(e => e.ItemDescription)
.IsRequired()
.IsUnicode(false)
.HasColumnName("itemDescription");
entity.Property(e => e.ItemImage)
.IsRequired()
.IsUnicode(false)
.HasColumnName("itemImage");
entity.Property(e => e.ItemName)
.IsRequired()
.HasMaxLength(150)
.IsUnicode(false)
.HasColumnName("itemName");
entity.HasOne(d => d.Category)
.WithMany(p => p.Items)
.HasForeignKey(d => d.CategoryId)
.HasConstraintName("fk_itemCategory");
});
modelBuilder.Entity<ItemCategory>(entity =>
{
entity.HasKey(e => e.CategoryId)
.HasName("pk_itemCategories");
entity.Property(e => e.CategoryId).HasColumnName("categoryID");
entity.Property(e => e.CategoryName)
.IsRequired()
.IsUnicode(false)
.HasColumnName("categoryName");
entity.Property(e => e.ParentCategoryId).HasColumnName("parentCategoryID");
entity.HasOne(d => d.ParentCategory)
.WithMany(p => p.InverseParentCategory)
.HasForeignKey(d => d.ParentCategoryId)
.HasConstraintName("fk_parentCategory");
});
modelBuilder.Entity<ItemMarkupHistory>(entity =>
{
entity.HasKey(e => new { e.ItemId, e.StartDate });
entity.ToTable("ItemMarkupHistory");
entity.Property(e => e.ItemId).HasColumnName("itemID");
entity.Property(e => e.StartDate)
.HasColumnType("date")
.HasColumnName("startDate");
entity.Property(e => e.EndDate)
.HasColumnType("date")
.HasColumnName("endDate");
entity.Property(e => e.Markup)
.HasColumnType("decimal(4, 1)")
.HasColumnName("markup")
.HasDefaultValueSql("((1.3))");
entity.Property(e => e.Sale)
.IsRequired()
.HasColumnName("sale")
.HasDefaultValueSql("('False')");
entity.HasOne(d => d.Item)
.WithMany(p => p.ItemMarkupHistories)
.HasForeignKey(d => d.ItemId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("FK_ItemMarkupHistory_Items");
});
modelBuilder.Entity<ItemsInOrder>(entity =>
{
entity.HasKey(e => new { e.OrderNumber, e.ItemId })
.HasName("pk_itemsInOrder");
entity.ToTable("ItemsInOrder");
entity.Property(e => e.OrderNumber).HasColumnName("orderNumber");
entity.Property(e => e.ItemId).HasColumnName("itemID");
entity.Property(e => e.NumberOf).HasColumnName("numberOf");
entity.Property(e => e.TotalItemCost)
.HasColumnType("decimal(10, 2)")
.HasColumnName("totalItemCost");
entity.HasOne(d => d.Item)
.WithMany(p => p.ItemsInOrders)
.HasForeignKey(d => d.ItemId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("fk_items");
entity.HasOne(d => d.OrderNumberNavigation)
.WithMany(p => p.ItemsInOrders)
.HasForeignKey(d => d.OrderNumber)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("fk_orderNumber");
});
modelBuilder.Entity<Review>(entity =>
{
entity.Property(e => e.ReviewId).HasColumnName("reviewID");
entity.Property(e => e.CustomerId).HasColumnName("customerID");
entity.Property(e => e.ItemId).HasColumnName("itemID");
entity.Property(e => e.Rating).HasColumnName("rating");
entity.Property(e => e.ReviewDate)
.HasColumnType("date")
.HasColumnName("reviewDate");
entity.Property(e => e.ReviewDescription)
.IsRequired()
.IsUnicode(false)
.HasColumnName("reviewDescription");
entity.HasOne(d => d.Customer)
.WithMany(p => p.Reviews)
.HasForeignKey(d => d.CustomerId)
.OnDelete(DeleteBehavior.ClientSetNull)
.HasConstraintName("fk_customer_review");
entity.HasOne(d => d.Item)
.WithMany(p => p.Reviews)
.HasForeignKey(d => d.ItemId)
.HasConstraintName("fk_item_review");
});
OnModelCreatingPartial(modelBuilder);
}
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}
}
我对这个问题的理解是 ItemsController 方法将 AmazonOrdersContext 类视为私有的,但据我所知它是公共的。
我已经阅读了我能找到的关于此事的每一个搜索结果项目。有人对我接下来可以尝试什么有任何想法吗?
解决方案
推荐阅读
- php - 在WP php函数中用点替换逗号
- python-3.x - Python:文件路径的超链接在浏览器中打开,而不是在文件资源管理器中
- android - 手动添加用户,无需注册 Firebase 数据库
- java - (Java 到 Javascript)Nodejs Crypto Javascript 中的 javax.crypto.Cipher 等效代码
- performance-testing - 如何在 Load runner (Vugen) 中将日期 (Thu 31 Oct 2019 10:08:29) 格式转换为毫秒 (1572516509000)
- xamarin - 地图未显示,非常适合 Xamarin.Forms(使用地图,完整的 Elmish)
- delphi - 如何在 Firedac Query 中使用 Oracle 执行多个查询?
- apache-kafka - 使用 REST 代理从主题中仅读取一条消息
- reactjs - 使用代码拆分和注入 React Redux 服务器端渲染
- ios - 我可以使用 Xcode 9 打开使用 Xcode 11 创建的项目吗?