我想首先将 Entity Framework 5 数据库添加到面向 .net Framework 4.5 的 Visual Studio 2012 中的类库中。我对需要输入的所有标签感到困惑:
- 将 ADO.NET 实体数据模型添加到项目时的 EDMX 文件名。我输入了“MyEF.edmx”。
- 将连接字符串保存到配置文件中时。我放置了“我的实体”。
- 选择要包含在模型中的一些表后,会出现一个用于输入模型名称空间的文本框。我输入了“我的模型”。
- 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”中,我应该在每个位置放置什么?
各种属性的使用如下:
- EDMX 文件名 --> 用于 EDMX 文件名
- 连接字符串名称 --> 用于配置文件中的连接字符串名称,也用于 EDMX 的概念模型 (CSDL) 部分的容器名称
- 模型命名空间 --> 用于 EDMX 的概念模型 (CSDL) 部分的命名空间,也用于附加 .Store 的存储模型 (SSDL) 部分
- EDMX 文件的自定义工具命名空间 --> 我不相信在使用 POCO 实体的 T4 代时它有任何用途。使用 EF1 样式内置代码生成时,设置此属性将为所有生成的文件设置 .NET 命名空间。
- .Context.tt 文件的自定义工具命名空间 --> 上下文源文件中使用的 .NET 命名空间
- .tt 文件的自定义工具命名空间 --> 实体源文件中使用的 .NET 命名空间
请注意,如果将 .Context.tt 和 .tt 自定义命名空间设置为不同的内容,则上下文将在与实体类型不同的命名空间中生成,并且这不会进行开箱即用的编译。如果您想在此处使用不同的命名空间,您可以更新 .tt 文件,但更常见的是,人们只是对两者使用相同的命名空间。
另请注意,更改属性后,您可能需要从每个 .tt 文件的上下文菜单中选择“运行自定义工具”,以便重新生成代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)