【问题标题】:Code first linking to database with EntityFramework 4代码首先使用 EntityFramework 4 链接到数据库
【发布时间】:2010-12-07 08:44:52
【问题描述】:

我正在研究实体方法中的 EntityFramework 4 代码,但我陷入了如何获取 ObjectContext / Entities 并将它们链接到数据库的问题。

我在 [msdn][1] 和 [blogs][2] 上查看了有关如何使用所有这些的各种网站,但他们都未能谈论如何创建将保存实体的数据库或不要首先使用代码。我知道我可以创建一个 edmx 文件并从中生成 sql,但是由于我首先编写我的实体,所以这个文件是空的,并且通过设计器,我看不到一种无需重复工作即可添加实体的方法(在创建所有实体/字段等)。

实体框架完整版中似乎没有EntityConfiguration类。它似乎只在我没有使用的 CTP 中(网络上的很多示例都使用 CTP)。

此外,以下上下文采用的字符串似乎与 edmx 或数据库无关。

public class EntityContext : ObjectContext
{
    public EntityContext()
        : base("name=ExampleEntities", "ExampleEntities")
    {
        ContextOptions.LazyLoadingEnabled = true;

        Users = CreateObjectSet<User>();
    }

    public IObjectSet<User> Users { get; set; }
}

所以问题是。

  1. 如何创建映射到我的实体的数据库架构?
  2. 我应该使用 edmx 文件还是创建自己的数据库文件 (.mdf)?
  3. 如果我使用 edmx 文件,如何轻松添加代码优先实体?
  4. ObjectContext 中的 ObjectSet 如何映射到数据库?

谢谢

编辑 我正在使用 VS2010 专业版及其附带的课程。我看到 CTP4 已经发布,所以我认为 RTM 版本还没有发布。这是正确的吗?

【问题讨论】:

    标签: c# database visual-studio-2010 entity-framework-4


    【解决方案1】:

    将此添加到您的 application_start 事件以创建数据库:

    Database.SetInitializer<YourObjectContextClass>(new RecreateDatabaseIfModelChanges<YourObjectContextClass>());
    

    【讨论】:

    • 重新创建什么数据库。据我所知,我的 ObjectContext 和 DB 之间没有链接。我应该在对象上下文中有一个正确的连接字符串吗?还有DatabaseRecreateDatabaseIfModelChanges 类是在什么程序集里生活的
    • 好的,我看到它是 Microsoft.Data.Entity.CTP 的一部分
    • 这需要DbContext 而不是ObjectContext
    【解决方案2】:

    看来我需要找到 CTP4 here

    我也关注了walkthrough

    【讨论】:

      猜你喜欢
      • 2012-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 2018-09-18
      相关资源
      最近更新 更多