Question

I am new in ASP.NET MVC 4. In my project I am using Code First technique in of EF. I want to retrieve some data from database and I used following code for this :

    List<SelectListItem> ls = new List<SelectListItem>();
    var lm = from m in db.BOs //fetch data from database
             select m;
    foreach (var temp in lm)
    {
        ls.Add(new SelectListItem() { Text = temp.Name, Value = temp.Id.ToString() });
    }

But when execution pointer move inside foreach it immediately come back out of the loop showing return ls value Count = 0. Code does not giving me any error while running that's why I am not getting where is going wrong.

UPDATE: I found something new this problem. When I kept mouse pointer over var lm; it shows me query and in query table name in FROM clause is not that one in my SQL database. My SQL table name is BO and in query it is taking BOes. I don't know from where this name is coming. So How I overcome this??

Was it helpful?

Solution 2

Write following code inside DbContext class :

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }

The modelBuilder.Conventions.Remove statement in the OnModelCreating method prevents table names from being pluralized. If you didn't do this, the generated tables would be named Students, Courses, and Enrollments. Instead, the table names will be Student, Course, and Enrollment. Developers disagree about whether table names should be pluralized or not. This tutorial uses the singular form, but the important point is that you can select whichever form you prefer by including or omitting this line of code.

OTHER TIPS

decorate your BO class with Table("BO") to specify the table name (attribute is in System.ComponentModel.DataAnnotations.Schema namespace)

[Table("BO")]
public partial class BO
{
    ...
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top