VS 2012 EF 5使用.net 4和数据库第一层分层应用程序概念

时间:2012-11-27 20:35:09

标签: entity-framework-5

我从VS2005升级到VS2012专门用于.Net 4,.Net 4.5的代码,并使用EF5。我是EF的新手。我有朱莉的EF书,但它主要讲的是关于EF4和POCO的问题,让我对实施EF5感到困惑。

我的托管只允许我目前运行.Net 4。我正在尝试在新数据库上使用EF5。 我首先尝试使用Code来生成数据库,但我无法生成数据库。所以我首先创建了数据库,然后使用EF5从数据库生成模型。我想要的是一个使用ASP.NET Forms,数据访问层和业务层的分层网站。我打算构建的业务层,所以我可以使用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。我习惯于编写存储过程来通过业务逻辑完成所有事情。

1 个答案:

答案 0 :(得分:1)

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

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

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

我会高度建议您考虑使用您的设计实现存储库模式以鼓励重复使用代码,并且这将使您的生活变得更加轻松。

希望这有帮助!