【发布时间】:2019-11-15 16:46:48
【问题描述】:
更新:这不是网络应用程序;它是一个服务器服务,有很多以不同方式访问数据库的 DLL。我需要一种方法来拥有一个可以提供对 DB 的访问的单例实体框架 DLL。
我正在尝试在我的项目中使用 Entity Framework 6 设置 DAL DLL 对象。我想调用单个对象而不是在所有需要它的对象中设置模型。这样我就可以在一个地方更新数据模型,并且我的所有库也会更新。
所以在我的项目中,我创建了一个 .NET 框架项目并链接到数据库以创建模型(首先是数据库)。这样该项目就可以看到模型了。
然后,我可以通过创建对项目的引用并链接到创建的实体,如下所示,链接到解决方案中我的其他项目之一中的 DLL 对象模型:
ModelEntities db = new ModelEntities();
我可以看到所有创建的方法和对象。但是当我运行一个非常简单的查询时,我似乎无法访问数据库:
var dbRecord = (from record in db.UserKey).FirstOrDefault();
我可以在实体模型类中创建一个测试并毫无问题地运行上面的查询。当我检查 db 对象时,它看起来已经初始化了。
然后想一想,我不确定实体模型是否使用外部对象登录到 SQL Server,当我单步执行代码时,该理论似乎得到了验证,在这种情况下,db 对象有一堆异常甚至在运行查询之前。
我什至不确定我是否会这样做。这绝对是一种可能性。但是在我正确的情况下,如何在调用查询之前初始化远程实体类中的数据库连接?
【问题讨论】:
-
请提供更多详细信息和代码示例。
-
有一个开放的连接等待使用不是一个好主意。应根据需要打开和关闭连接。让连接池做它最擅长的事情。
标签: c# entity-framework