Класс не имеет исключения конструктора без параметров в контроллере - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь сделать первый подход Entity Framework Code.Затем я сделал свои модели DbContext и добавил их в контроллер.Я следовал онлайн-уроку, так как никогда раньше не использовал C #.

Однако таблицы не создаются, пока я не добавлю вызов в БД в контроллере.

public ActionResult Index()
     {
        db.posts.ToList();

        return View();
     }

Однако вызов выдает.

InvalidOperationException: класс 'SocialMediaMining.Models.SocialMedia.Facebook.posts' не имеет конструктора без параметров.

класс сообщений:

public class posts
    {
        public dynamic jsonObj { get; set; }
        public posts(dynamic json)
    {
        jsonObj = json;

        if (jsonObj != null)
        {

            id = jsonObj.id;
            name = jsonObj.name;
            if(jsonObj.feed !=null)
            {
                feed = new feed(jsonObj.feed);

            }
        }
    }
    public string id { get; set; }
    public string name { get; set; }
    public virtual feed feed { get; set; }

    public int postsId { get; set; }
}

Контроллер:

public class FacebookController : Controller
{
      //The dbcontext call
      FacebookEntities db = new FacebookEntities();

    public ActionResult Index()
    {
        // the error
        db.posts.ToList();

        return View();
    }
// more code here
}

// DbContext

public class FacebookEntities : DbContext
    {
     public FacebookEntities() :  base("SocialMediaDb")
    {

    }
    public DbSet<posts> posts { get; set; }

  //more code here
}

Любая помощь приветствуется

1 Ответ

0 голосов
/ 19 февраля 2019

Сообщение об исключении довольно простое - вам нужно указать конструктор без параметров для posts класса, который должен выглядеть следующим образом:

public class posts
{    
    // add this constructor
    public posts()
    {
    }

    public dynamic jsonObj { get; set; }

    public posts(dynamic json)
    {
        jsonObj = json;

        if (jsonObj != null)
        {

            id = jsonObj.id;
            name = jsonObj.name;
            if(jsonObj.feed !=null)
            {
                feed = new feed(jsonObj.feed);

            }
        }
    }
    public string id { get; set; }
    public string name { get; set; }
    public virtual feed feed { get; set; }

    public int postsId { get; set; }
}

Обратите внимание, что любой класс сущностей, который хотите включить в *Параметр типа 1005 * должен иметь конструктор без параметров, чтобы разрешить связывание с EF.Также рекомендуется использовать PascalCase для имен классов сущностей и имен свойств, например Posts.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...