我使用Entity Framework 4.1 code first
连接到已有的数据库。我首先使用的表格被称为Bank
。我也有一个Bank class
作为我的域模型。这是我映射我的阶级和表:映射到已经存在的数据库表
public class HbfContext : DbContext
{
public DbSet<Bank> Banks { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Bank>().ToTable("Bank");
}
}
我的银行表:
BankID INT
BankName VARCHAR(50)
我的银行类看起来是这样的:
public class Bank
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsActive { get; set; }
}
我有问题时,我想归还所有的银行。 SQL语句返回从:
return db.Banks
.OrderBy(x => x.Name);
是:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[IsActive] AS [IsActive]
FROM
[dbo].[Bank] AS [Extent1]
ORDER BY
[Extent1].[Name] ASC
这是行不通的,因为我的表没有编号,名称和IsActive列。我将如何解决这个问题,并将EF映射BankId ID和银行名称自动命名?
没有Id和Name列,你可以在我的表结构中看到。因此,不要更改域模型的属性,将列名映射到通过流利API的属性可能是明智的做法? – 2012-01-13 10:58:56
我错过了这部分。如果您的类声明与您的表格不同,则必须映射所有区别。我修改了我的示例。 – 2012-01-13 11:02:02