#c# #database #visual-studio #exception #razor-pages
Вопрос:
Я хочу, чтобы продукты, которые у меня есть в базе данных, отображались на моей веб-странице (в настоящее время у меня 0), и мой код,
Это в моем классе DVDDataSQL:
public IEnumerable<DVD> GetDVDs(string name = null)
{
var param = !string.IsNullOrEmpty(name) ? $"{name}%" : name;
return scandiwebTestDbContext.DVDs.Where(r => string.IsNullOrEmpty(name) || EF.Functions.Like(r.Name, param)).ToList();
}
Это в моем интерфейсе Idvddata :
public interface IDVDData
{
DVD GetProductById(int DvdId);
DVD Create(DVD Dvd);
int Commit();
DVD Delete(int DvdId);
IEnumerable<DVD> GetDVDs(string name = null);
}
и это мой класс бд:
public class ScandiwebTestDbContext : DbContext
{
public ScandiwebTestDbContext(DbContextOptions<ScandiwebTestDbContext> options) : base(options)
{
}
public DbSet<DVD> DVDs { get; set; }
public DbSet<Book> Books { get; set; }
public DbSet<Furniture> Furnitures {get;set;}
}
у меня это в программе запуска добавлено
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddMvc();
services.AddDbContext<ScandiwebTestDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("ScandiDb")));
services.AddScoped<IDVDData, DVDDataSQL>();
services.AddScoped<IBookData, BookDataSQL>();
services.AddScoped<IFurnitureData, FurnitureDataSQL>();
}
я четко заявил, что это нормально, быть пустым или пустым, но это вызывает исключение, что его нулевой эфирный путь. у меня никогда раньше не было этой проблемы, и я всегда делал такие вещи, как это, я не уверен, что что-то упускаю?
Комментарии:
1. Можете ли вы показать весь код, пожалуйста? Как вы инициализируете scandiwebTestDbContext?
2. я добавил все, что я подключил к классу бд
Ответ №1:
вы должны ввести свой dbcontext, что-то вроде этого
public class DVDData : IDVDData
{
private readonly ScandiwebTestDbContext _scandiwebTestDbContext
public DVDData (ScandiwebTestDbContext scandiwebTestDbContext)
{
_scandiwebTestDbContext=scandiwebTestDbContext;
}
.....
public IEnumerable<DVD> GetDVDs(string name = null)
{
var param = !string.IsNullOrEmpty(name) ? $"{name}%" : name;
return _scandiwebTestDbContext.DVDs.Where(r => string.IsNullOrEmpty(name) || EF.Functions.Like(r.Name, param)).ToList();
}
}
Комментарии:
1. Боже мой, как я могла это забыть … большое тебе спасибо !!
2. @Дэвид, добро пожаловать!