Code First基础问题

手抓宝 2014-01-10 09:32:02
小弟刚接触Code First,之前都是Database First的。。有个问题不太明白
写好了实体,写好了DBContext

public class TestTableContext : DbContext
{
public TestTableContext(string databaseName):base(databaseName){}

public DbSet<TestTable> TestTables { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//base.OnModelCreating(modelBuilder);
modelBuilder.Entity<TestTable>().ToTable("Table1");
//modelBuilder.Configurations.Add(new TestTableMap());
}
}

这样是不是就可以了呢?
然后我在程序里边用的时候:

static void Main(string[] args)
{
TestTable tt = new TestTable() { Name = "haha", age = 25 };

using (var context = new TestTableContext("ContextString"))
{
/*这里有问题
/*这里如果放开注释插入数据,会在SQLServer中新建一个数据库和一张表,并且插入数据,一切正常
/*这里如果注释掉,就是不插入数据,就不会创建数据库和表。*/
//context.TestTables.Add(tt);
context.SaveChanges();
}

Console.ReadKey();
}


想问下Code First就是这样的嘛?还是我哪儿少写什么东西了?
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
手抓宝 2014-01-10
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
是的,除非你开始添加数据,否则codefirst不会事先创建数据库。
引用 3 楼 zl373946618289 的回复:
如果只是想创建数据库直接用

context.Database.Create();
就行了
好的,谢谢两位大神
zl289kkk 2014-01-10
  • 打赏
  • 举报
回复
引用 楼主 hrabeyond 的回复:
小弟刚接触Code First,之前都是Database First的。。有个问题不太明白 写好了实体,写好了DBContext

public class TestTableContext : DbContext
{
    public TestTableContext(string databaseName):base(databaseName){}

    public DbSet<TestTable> TestTables { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        //base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<TestTable>().ToTable("Table1");
        //modelBuilder.Configurations.Add(new TestTableMap());
    }
}
这样是不是就可以了呢? 然后我在程序里边用的时候:

static void Main(string[] args)
{
    TestTable tt = new TestTable() { Name = "haha", age = 25 };

    using (var context = new TestTableContext("ContextString"))
    {
        /*这里有问题
          /*这里如果放开注释插入数据,会在SQLServer中新建一个数据库和一张表,并且插入数据,一切正常
          /*这里如果注释掉,就是不插入数据,就不会创建数据库和表。*/
        //context.TestTables.Add(tt);
        context.SaveChanges();
    }

    Console.ReadKey();
}
想问下Code First就是这样的嘛?还是我哪儿少写什么东西了?
如果只是想创建数据库直接用

context.Database.Create();
就行了
threenewbee 2014-01-10
  • 打赏
  • 举报
回复
是的,除非你开始添加数据,否则codefirst不会事先创建数据库。
手抓宝 2014-01-10
  • 打赏
  • 举报
回复
刚刚接触,问题比较弱智,请各位不要见笑

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧