C# 没有为此对象定义无参数构造函数-MVC项目
我试图创建一个没有实体框架的MVC项目,但我遇到了这个错误。没有为此对象定义无参数构造函数。我是C语言的新手,我想得到一些帮助。这是我的密码: 首先是model Movies.csC# 没有为此对象定义无参数构造函数-MVC项目,c#,asp.net-mvc,model-view-controller,C#,Asp.net Mvc,Model View Controller,我试图创建一个没有实体框架的MVC项目,但我遇到了这个错误。没有为此对象定义无参数构造函数。我是C语言的新手,我想得到一些帮助。这是我的密码: 首先是model Movies.cs using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Web; namespace MyMovies.Models { public c
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
namespace MyMovies.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
public string Rating { get; set; }
}
public interface IMovieRepository
{
IEnumerable<Movie> Get();
}
public class MovieDBRepository : IMovieRepository
{
public IEnumerable<Movie> Get()
{
string connectionString = "Connection";
using (var conn = new SqlConnection(connectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "SELECT ID, Title, Date, Genre, Rating";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
yield return new Movie
{
ID = reader.GetInt32(reader.GetOrdinal("ID")),
Title = reader.GetString(reader.GetOrdinal("name")),
ReleaseDate = reader.GetDateTime(reader.GetOrdinal("ReleaseDate")),
Genre = reader.GetString(reader.GetOrdinal("Genre")),
//Price = reader.GetFloat(reader.GetOrdinal.("Price")),
Rating = reader.GetString(reader.GetOrdinal("Rating"))
};
}
}
}
}
}
}
如果未注册依赖项注入框架,则无法在控制器的构造函数中指定参数 或者更改此选项:
public MovieController(IMovieRepository repository)
{
this.repository = repository;
}
到
或者设置依赖项注入引擎,如Unity、Ninject或ffastinject。电影类的定义是什么?使用像Ninject这样的DI容器来配置它,或者您可以编写自己的IDependencyResolver。我如何才能做到这一点?很抱歉,我没有编程经验。问题是在依赖项注入DI容器中,在尝试实例化MovieController时发生错误。请注意,您只有一个构造函数需要IMovieRepository参数,即public MovieControllerIMovieRepository repository{…},因此,要么修复DI容器,要么在无参数构造函数中手动实例化IMovieRepository。
public MovieController(IMovieRepository repository)
{
this.repository = repository;
}
public MovieController()
{
this.repository = new MovieDBRepository();
}