1

我从 VS2005 升级到 VS2012,专门用于在 .Net 4、.Net 4.5 中编码,并使用 EF5。我是 EF 的新手。我有 Julie 的 EF 书,但它主要谈论 EF4 和 POCO,它让我在尝试实施 EF5 时感到困惑。

我的主机目前只允许我运行 .Net 4。我正在尝试在新数据库上使用 EF5。我首先尝试了 Code 来生成我的数据库,但我无法让它生成数据库。所以我先创建了数据库,然后用EF5从数据库中生成了模型。我想要的是一个使用 ASP.NET 表单、数据访问层和业务层的分层网站。我打算构建的业务层,因此我可以使用 ObjectDataSource 与一些 Web 服务一起拉入网页,以使用级联下拉菜单。

我创建了我的 NameX.edm 模型,但 tt 文件没有相同的名称,它们有 Model1.tt 和 Model1.Context.tt 的名称不同,为什么。Model1.Context.tt 也是空的。我正在尝试创建运行 EF5 DbContext 的 POCO 类,但我无法让它看到 edm 模型。我在某处读到 EF5 会自动创建 POCO。我在这里没有看到大局。我的问题是我没有使用 .Net4.5 吗?

我拥有的是一个 ASP.NET 应用程序项目、一个 EF 项目、一个 POCO 项目,并打算拥有一个具有业务逻辑的第四个项目。如何正确生成 EF 和 POCO 类?我想要一个分层的应用程序来很好地扩展。下一个问题如何让 POCO 类与业务逻辑对话?我的数据库是 SQL。我习惯于编写存储过程来通过业务逻辑完成所有事情。

4

1 回答 1

1

如果您使用的是模型优先技术,请确保您有对System.Data.EntitySystem.Data.Entity.Design的引用。此外,您还需要创建对 EntityFramework.dll 的引用。它默认位于c:\Program Files\Microsoft ADO.NET Entity Framework Feature CTP5\Binaries\EntityFramework.dll 中。如果找不到它,请确保您已通过包管理器控制台安装了实体框架。为此,请打开工具、库包管理器、包管理器控制台,然后键入Install-Package EntityFrameWork

接下来,您要向项目中添加新项目。右键单击您的解决方案,转到添加,然后选择新项目。您想从左侧的 Common Items 部分中选择 Data,然后选择 ADO.NET Entity Data Model。

接下来选择从数据库生成。在下一个屏幕中,如果您尚未设置与服务器的连接,请单击New Connection...,否则从下拉框中选择您的数据库。您需要选择是否要在配置文件中包含连接字符串信息。这取决于您需要应用程序的安全性。如果您选择不这样做,则需要将此信息作为代码中的参数传递。同样在底部,您很可能希望将自动生成的实体名称更改为更易于使用的名称。该名称将是您的 DBContext 类的名称!

接下来,您要选择您希望 EF 为其创建 POCO 的表。如果您想要所有表格,只需勾选表格项目。视图和存储过程也是如此。

单击完成后,您应该会在设计模式下看到所有精美的 POCOS 都摆在您面前。注意如果您的所有表都没有主键,我建议您修复它!如果您没有设置主键,或者您的表中的命名约定阻止 VS 为您隐式创建它们,VS 会向您吐口水。

这是一个快速启动和运行的小教程。您现在可以使用 DBContext 对象从 POCOS 中持久化和提取数据。例如,如果您将 DBContext 类命名为 *Gary_Bettman_Sucks*,并且您想从名为NHL的表中创建一条新记录,您将执行以下操作:

Dim context as New Gary_Bettman_Sucks

Dim PullMyGoalie as New NHL With {
    .Goals = 0,
    .Playoffs = False
}

context.Set(Of NHL).Add(PullMyGoalie)
context.SaveChanges()

强烈建议您考虑在您的设计中实现存储库模式,以鼓励代码重用,这将使您的生活更加轻松。

希望这可以帮助!

于 2012-11-27T21:13:44.367 回答