实体类指定某张表,要加上[Table("corder")]
1>、Data Annotation方式
在使用Data Annotation方式进行Entity Framework Code First与数据库映射之前,需要先添加命名空间引用
using System.ComponentModel.DataAnnotations;
[Table("corder")]
public class Corder
{
[Key]
public string ccode { get; set; }
}
2>、Fluent API方式
Fluent API实现配置Entity Framework Code First与数据库映射关系主要是通过继承DbContext并重写其中的OnModelCreating方法来进行的。在本文中新建类文件PortalContext.cs继承DbContext。
在继承DbContext之前,添加命名空间引用。
1
|
using
System.Data.Entity;
|
重写OnModelCreating方法,配置类对应于数据库中的表名:
1
2
3
4
|
protected
override
void
OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<
corder>().ToTable(
"
corder"
);
}
|
重写OnModelCreating方法,配置类对应于数据库中的表名,并指定表的所有者:
//protected override void OnModelCreating(DbModelBuilder modelBuilder)
//{
// base.OnModelCreating(modelBuilder);
// modelBuilder.Entity<Corder>().ToTable("corder");
//}
完整的代码如下
public class CorderEntities : DbContext
{
// //实体类连接的数据库
public CorderEntities() : base("Data Source=.;Database=zcscdb20083;User=sa;Password=1") { }
static CorderEntities()
{
Database.SetInitializer<CorderEntities>(null);
// Database.SetInitializer(new DropCreateDatabaseIfModelChanges<CorderEntities>());
}
// public CorderEntities() : base("name=TestContext") { }
public DbSet<Corder> corder { get;set;}
//实体类指定某张表
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Corder>().ToTable("corder");
}
}
public class EF_CorderMap:EntityTypeConfiguration<Corder>
{
public EF_CorderMap()
{
this.Property(t => t.strCustid).HasColumnName("ccustid")
.HasMaxLength(20);
this.Property(t => t.dtDate).HasColumnName("ddate");
this.Property(t => t.strSaleman).HasColumnName("csaleman")
.HasMaxLength(20);
this.Property(t => t.decAmt).HasColumnName("damt")
.HasColumnType("decimal")
.HasPrecision(18, 2);
}
}
// 实体类指定某张表
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new EF_CorderMap());
}
实体类
[Key]
[Column("ccode"),MaxLength(20)]//对应数据库列名,长度
public string strCode { get; set; }
public string strCustid { get; set; }
public DateTime dtDate { get; set; }
public string strSaleman { get; set; }
public decimal decAmt { get; set; }
三、数据库初始化
1.关闭初始化
TestContext是dbcontext对象
1: Database.SetInitializer<TestContext>(null);