2015-07-09 3 views
3

Я новичок в MVC, работающем над трехуровневым MVC-проектом, и я использую готовую базу данных.Ссылка на объект не установлена ​​в экземпляр объекта MVC 5

Теперь мне нужно написать запрос с помощью LINQ в бизнес-уровне, чтобы принести список врачей, как это:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using DoctorsSheet.DataAccess; 

namespace DoctorsSheet.Business 
{ 
    class Doctor : IDoctor 
    { 
     DoctorsSheetDBEntities db = new DoctorsSheetDBEntities(); 

     public IQueryable<Doctors> GetDoctors() 
     { 
      var doctors = from d in db.Doctors 
          select d; 

      return doctors.AsQueryable<Doctors>(); 
     } 
    } 
} 

и когда я называю GetDoctors() из DoctorsController это сказать мне об объекте ссылки, не установлено на экземпляр объекта

это контроллер:

public ActionResult Index() 
{ 
    var doctors = obj.GetDoctors().AsQueryable<Doctors>(); 
    return View(doctors); 
} 

пожалуйста, помогите мне, как это исправить.

+0

, на какую переменную вы получаете эту ошибку? – ramiramilu

+0

Вам не нужно бросать Queryable после выполнения 'GetDoctors()', потому что вы уже применили Queryable в методе. –

+0

на переменных врачах в ActionResult @ramiramilu –

ответ

3

Сделайте свой класс public -

public class Doctor : IDoctor 

А затем начать obj переменную, как показано ниже, а затем использовать obj.

IDoctor obj = new Doctor(); 

Примечание: Как объяснено @Sippy нет необходимости использовать GetDoctors().AsQueryable<Doctors>();.