我正在使用實體框架代碼優先方法來創建我的數據庫表。下面的代碼在數據庫中創建一個DATETIME列,但我想創建一個DATE列。在實體框架中創建日期字段代碼優先
//[Column(TypeName = "Date")]
public DateTime endDate { get; set; }
public DateTime startDate { get; set; }
列屬性不起作用。如何在創建表時創建DATE類型的列?
謝謝!
我正在使用實體框架代碼優先方法來創建我的數據庫表。下面的代碼在數據庫中創建一個DATETIME列,但我想創建一個DATE列。在實體框架中創建日期字段代碼優先
//[Column(TypeName = "Date")]
public DateTime endDate { get; set; }
public DateTime startDate { get; set; }
列屬性不起作用。如何在創建表時創建DATE類型的列?
謝謝!
您可以將實體映射到OnModelCreating方法的DbContext中的表格。我個人更喜歡爲每個實體創建一個映射類,並在此方法中引用它。示例:
編輯 - 更新後的代碼。這是完整的功能代碼。
public sealed class MyDb : DbContext
{
static MyDb()
{
System.Data.Entity.Database.SetInitializer<MyDb>(new DropCreateDatabaseAlways<MyDb>());
}
public MyDb(string nameOrConnectionString) : base(nameOrConnectionString)
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new MyMapper());
base.OnModelCreating(modelBuilder);
}
public DbSet<TesTme> Items { get; set; }
}
public sealed class MyMapper : EntityTypeConfiguration<TesTme>
{
public MyMapper()
{
// other mapping info
this.ToTable("TestTable");
HasKey(x => x.MyId);
this.Property(x => x.MyId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
Property(x => x.dt).HasColumnType("date");
}
}
public sealed class TesTme
{
public int MyId { get; set; }
public DateTime dt { get; set; }
}
public sealed class SomeCallerOfTheDbContext
{
public void TestMe()
{
// this is the entry point
using (var context = new MyDb("connectionStringName"))
{
var items = context.Items.ToList();
}
}
}
取消註釋該屬性[Column(TypeName =「Date」)] – Tuco 2015-02-11 18:54:18
我評論它,因爲它不起作用。 – smriti 2015-02-11 18:57:21
然後仍然取消註釋,所以人們很清楚你包括它但不起作用 – Tuco 2015-02-11 18:59:02