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?
Hi Pravesh!
You could use System.ComponentModel.DataAnnotations to map the property names to match those in your existing table e.g.
[Column("BankID")][Required]
public string Id
{
get;
set;
}