实体框架5命名空间

End*_*ono 7 entity-framework entity-framework-5

我想首先将Entity Framework 5数据库添加到Visual Studio 2012中针对.net framework 4.5的类库中.我对所有需要键入的标签感到困惑:

  • 将ADO.NET实体数据模型添加到项目时的EDMX文件名.我把'MyEF.edmx'.
  • 将连接字符串保存到配置文件中时.我把'MyEntities'.
  • 在选择要包含在我的模型中的一些表之后,有一个输入模型命名空间的文本框.我把'MyModel'.
  • MyEF.edmx文件的属性"自定义工具命名空间".我把'TheEF'.
  • MyEF.Context.tt文件的属性"自定义工具命名空间".我把'TheContext'.
  • MyEF.tt文件的属性"自定义工具命名空间".我把'TheModel'.

用ADO.NET实体数据模型设计器打开MyEF.edmx,查看MyModel的属性,有:

  • 实体容器名称,填充'MyEntities'.所以连接字符串名称就在这里.
  • 命名空间,填充'MyModel'.这来自表格选择文本框.

将某些内容放入edmx自定义工具命名空间似乎没有做任何事情.我得到了这个结论,因为当我grep整个源代码文件夹时,我发现它只在一个vbproj文件中.

将'TheModel'放入MyEF.tt自定义工具命名空间会产生MyEF.Context.vb错误,说明类型'MyTable'(这是我的数据库表的名称)未定义.

有人可以解释每个标签的目的吗?

如果我想将这个edmx(DbContext,模型等)生成的所有类放入一个名称空间"MyEF"中,我应该在每个地方放置什么?

Art*_*ers 18

各种属性使用如下:

  • EDMX文件名 - >用于EDMX文件名
  • 连接字符串名称 - >用于配置文件中的连接字符串名称,也用于EDMX的概念模型(CSDL)部分的容器名称
  • 模型名称空间 - >用于EDMX的概念模型(CSDL)部分的名称空间,也用于附加.Store的商店模型(SSDL)部分
  • EDMX文件的自定义工具命名空间 - >我不相信这在使用T4代POCO实体时用于任何事情.使用EF1样式的内置代码生成时,设置此属性将为所有生成的文件设置.NET命名空间.
  • .Context.tt文件的自定义工具命名空间 - >上下文的源文件中使用的.NET命名空间
  • .tt文件的自定义工具命名空间 - >实体的源文件中使用的.NET命名空间

请注意,如果将.Context.tt和.tt自定义命名空间设置为不同的东西,那么将在与实体类型不同的命名空间中生成上下文,并且这不会编译为开箱即用的.如果要在此处使用不同的命名空间,可以更新.tt文件,但更常见的是人们只使用相同的命名空间.

另请注意,在更改属性后,可能需要从每个.tt文件的上下文菜单中选择"运行自定义工具",以便重新生成代码.