EF6应用代码

希拉姆尼克

我正在迁移到Entity Framework v6,并且正在努力构建可让我在代码中定义SQL 2008R2数据库连接的代码。由于该库是多个应用程序将使用的dll,因此我无法在app.config文件中存储连接字符串信息。这个想法是在1个dll中维护所有数据库连接,而不必引用前端中的实体库或指定连接字符串。

使用EF5,我可以使用部分类并在DBContext中定义连接字符串,该方法似乎不适用于EF6。我想要一个完全在代码中定义的EF6 SQL数据库连接的示例。EF6的大多数示例都是针对代码优先模型的,我已经有了数据库表,我只需要构建接口即可。

-希兰

汤姆兄弟

(假设您正在使用EF设计器)

使用EF6设计器生成的代码时,不能仅将连接字符串传递给DbContext,因为DbContext需要从EDMX创建的信息。但是您仍然可以创建一个具有接受连接字符串的构造函数的局部类。您只需要创建一个ObjectContext并将其传递给DbContext构造函数即可。

这是一个例子:

using System.Data.Entity.Core.EntityClient;
using System.Data.Entity.Core.Metadata.Edm;
using System.Data.Entity.Core.Objects;
using System.Data.SqlClient;

namespace Northwind.Model {
    public partial class NorthwindEntities {
        public NorthwindEntities(string connectionString)
            : base(GetObjectContext(connectionString), true) {
        }

        private static ObjectContext GetObjectContext(string connectionString) {
            // You can use the metadata portion of the connection string the the designer added to your config for the paths
            var paths = new[] { 
                "res://*/Northwind.csdl", 
                "res://*/Northwind.ssdl", 
                "res://*/Northwind.msl"
            };

            var workspace = new MetadataWorkspace(paths, new[] { typeof(NorthwindEntities).Assembly });
            var connection = new EntityConnection(workspace, new SqlConnection(connectionString));

            return new ObjectContext(connection);
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EF6:代码优先复杂类型

来自分类Dev

带有代码优先EF6的多租户

来自分类Dev

带有代码优先EF6的多租户

来自分类Dev

EF6代码优先模型ForeignKey

来自分类Dev

EF6嵌套交易

来自分类Dev

EF6 TPH与Oracle

来自分类Dev

代码优先EF6 SqlServerMigrationSqlGenerator中的自定义逻辑不起作用

来自分类Dev

EF6,代码优先,启用迁移,“无法加载指定的元数据资源”

来自分类Dev

EF6代码优先对表进行复数的对象名称无效

来自分类Dev

EF6代码优先:使用Fluent API声明外键

来自分类Dev

EF6中的代码优先反向工程师在哪里

来自分类Dev

在代码优先EF6中使用SqlGeography不生成列

来自分类Dev

EF6代码优先-可能导致循环或多个级联路径

来自分类Dev

EF6代码迁移-数据库不同,但相同

来自分类Dev

EF6代码首次延迟加载导致空集合

来自分类Dev

EF6:访问通过代码优先fluent API生成的映射表

来自分类Dev

使用FluentAPI和代码优先功能在EF6的DbContext中进行功能分组

来自分类Dev

首先在EF6代码中创建多对多关系

来自分类Dev

使对动态表LINQ EF6代码优先的访问成为可能

来自分类Dev

EF6代码首次延迟加载导致空集合

来自分类Dev

EF6代码优先更改数据值

来自分类Dev

EF6代码迁移-数据库不同,但相同

来自分类Dev

如何以EF6代码优先的方式删除实体之间的关系?

来自分类Dev

具有相同实体的2个属性时的EF6代码优先混淆

来自分类Dev

使用FluentAPI和代码优先功能在EF6的DbContext中进行功能分组

来自分类Dev

EF6代码优先:更新数据库登录失败

来自分类Dev

代码优先EF6 SqlServerMigrationSqlGenerator中的自定义逻辑不起作用

来自分类Dev

EF6代码优先:将参数传递给映射的删除存储过程

来自分类Dev

EF6代码迁移-数据操作以将列'filePath'更新为varbinary

Related 相关文章

  1. 1

    EF6:代码优先复杂类型

  2. 2

    带有代码优先EF6的多租户

  3. 3

    带有代码优先EF6的多租户

  4. 4

    EF6代码优先模型ForeignKey

  5. 5

    EF6嵌套交易

  6. 6

    EF6 TPH与Oracle

  7. 7

    代码优先EF6 SqlServerMigrationSqlGenerator中的自定义逻辑不起作用

  8. 8

    EF6,代码优先,启用迁移,“无法加载指定的元数据资源”

  9. 9

    EF6代码优先对表进行复数的对象名称无效

  10. 10

    EF6代码优先:使用Fluent API声明外键

  11. 11

    EF6中的代码优先反向工程师在哪里

  12. 12

    在代码优先EF6中使用SqlGeography不生成列

  13. 13

    EF6代码优先-可能导致循环或多个级联路径

  14. 14

    EF6代码迁移-数据库不同,但相同

  15. 15

    EF6代码首次延迟加载导致空集合

  16. 16

    EF6:访问通过代码优先fluent API生成的映射表

  17. 17

    使用FluentAPI和代码优先功能在EF6的DbContext中进行功能分组

  18. 18

    首先在EF6代码中创建多对多关系

  19. 19

    使对动态表LINQ EF6代码优先的访问成为可能

  20. 20

    EF6代码首次延迟加载导致空集合

  21. 21

    EF6代码优先更改数据值

  22. 22

    EF6代码迁移-数据库不同,但相同

  23. 23

    如何以EF6代码优先的方式删除实体之间的关系?

  24. 24

    具有相同实体的2个属性时的EF6代码优先混淆

  25. 25

    使用FluentAPI和代码优先功能在EF6的DbContext中进行功能分组

  26. 26

    EF6代码优先:更新数据库登录失败

  27. 27

    代码优先EF6 SqlServerMigrationSqlGenerator中的自定义逻辑不起作用

  28. 28

    EF6代码优先:将参数传递给映射的删除存储过程

  29. 29

    EF6代码迁移-数据操作以将列'filePath'更新为varbinary

热门标签

归档