【发布时间】:2012-09-04 01:59:15
【问题描述】:
现在有一件事让我发疯。
我的(数据库优先)EF-Model 需要一个动态连接字符串(服务器的 IP 地址可能会不时更改)。
因此,在较旧的 EF 版本中,您可以通过构造函数传递连接字符串,但这在 5.0 中似乎是不可能的。
到目前为止,我所阅读的内容,您可以更改您的数据模板,但每次您重新生成模型等时都会被覆盖,因此不是最好的方法。
另一件事是 SQLConnectionFactory,但这似乎根本不起作用
(Database.DefaultConnectionFactory = new SqlConnectionFactory( ... ) 似乎完全被忽略了)。
什么是正确的方法?
【问题讨论】:
-
我不认为这是一个具体的 EF5 问题,而是设计器不会生成包含为此构造函数的 DbContext 派生类。您应该能够修改 t4 模板以生成您想要的构造函数。
-
你试过这个 DbContextConstructor msdn.microsoft.com/en-us/library/gg679467%28v=vs.103%29.aspx 吗?它在 EF5 中受支持。
-
@petro.sidlovskyy - 他的问题是设计者生成的上下文类不包含该构造函数,因此他无法在不修改上下文类的情况下访问它,但每次他重新生成时都会被覆盖数据库中的数据。
-
这很奇怪。如果 DbContext 是作为部分类生成的,您可以只在另一个文件中使用连接字符串实现构造函数,该文件不会被覆盖。
标签: c# sql entity-framework connection-string