stack questions
stack questions

Reputation: 982

DbContext is not giving any data from database

I have two sets of codes. The first one doesn't give me the list of data but the second on does. Please see codes below:

First Code: Model

public class Student
{
    [Key]
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    public string Gender { get; set; }
}

DataConnection

public class DataConnection : DbContext
{
    public DataConnection()
        : base("DefaultConnection")
    {

    }
    public DbSet<Student> Students { get; set; }
}

Interface

public interface IStudent
{
    List<Student> StudentList();
    void InsertStudent(Student student);
    void UpdateStudent(Student student);
    Student GetStudentById(int id);
    void DeleteStudent(int id);
}

Concrete

readonly DataConnection _context;

public StudentConcrete()
{
    _context = new DataConnection();
}

public List<Student> StudentList()
{
    var studentList = (from s in _context.Students select s).ToList();
    return studentList;
}

Second Code Concrete

readonly DataConnection _context;

public StudentConcrete()
{
_context = new DataConnection();
}

public List<Student> StudentList()
{
    SqlConnection xxx = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
    var cmd = new SqlCommand("GetAllStudents", xxx);
    var da = new SqlDataAdapter(cmd);
    var ds = new DataSet();
    da.Fill(ds);
    if (ds.Tables[0].Rows.Count > 0)
    {
        return (from DataRow row in ds.Tables[0].Rows
                select new Student()
                {
                    Age = Convert.ToInt32(row["Age"]),
                    FirstName = row["FirstName"].ToString(),
                    Gender = row["Gender"].ToString(),
                    LastName = row["LastName"].ToString()
                }).ToList();
    }
    else
    {
        return null;
    }

}

I would like to get the data using the first code but I don't know where I get it wrong. My SP is just to get the students.

Upvotes: 0

Views: 142

Answers (1)

Emre Kabaoglu
Emre Kabaoglu

Reputation: 13146

I suspected that maybe you are retrieving the records from another table somehow. Would you try to add Table attribute for Student entity.

using System.ComponentModel.DataAnnotations.Schema;

[Table("Students")]
public class Student
{
    [Key]
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    public string Gender { get; set; }
}

Upvotes: 1

Related Questions