I am using Entity Framework 4.1 code first
to connect to an already existing database. The table that I am using first is called Bank
. I also have a Bank class
as my domain model. This is how I mapped my class and table:
public class HbfContext : DbContext
{
public DbSet<Bank> Banks { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Bank>().ToTable("Bank");
}
}
My Bank table:
BankID INT
BankName VARCHAR(50)
My Bank class looks like this:
public class Bank
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsActive { get; set; }
}
I am having issues when I want to return all the banks. The SQL statement returned from:
return db.Banks
.OrderBy(x => x.Name);
is:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[IsActive] AS [IsActive]
FROM
[dbo].[Bank] AS [Extent1]
ORDER BY
[Extent1].[Name] ASC
This is not going to work because my table does not have the Id, Name and IsActive columns. How would I fix this and would EF map BankId to Id and BankName to Name automatically?