我希望能够使用公共构造函数实现一个类,该构造函数默认调用私有构造函数,我认为它与下面的代码很接近,但事实并非如此.
public MySQLConnector()
: this MySQLConnector (ConfigurationManager.AppSettings["DBConnection"])
{
}
private MySQLConnector(string dbConnectionString)
{
//code
}
Run Code Online (Sandbox Code Playgroud) 我遇到了一些我不知道如何调和的错误.我正在使用EntityFramework5,因为它是MySql.Data和MySql.Data.Entity的最新支持的EF版本.正是App.Config抛出错误.以下是我一直在尝试的两个替代方案,但没有解决方案.
<entityFramework>
<defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity" />
</providers>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)
在这个例子中我得到错误: {"Unrecognized element 'providers'. (C:\\Users\\recursor\\Documents\\Visual Studio 2012\\Projects\\CS3280\\Final Project\\IR\\ConsoleApplication2\\bin\\Debug\\ConsoleApplication2.vshost.exe.Config line 16)"}
据我所知,EF5不支持提供程序,所以我尝试使用它.
<entityFramework>
<defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
<contexts>
<context type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity" />
</contexts>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)
在这个例子中我得到错误: {"Required attribute 'invariant' not found. (C:\\Users\\recursor\\Documents\\Visual Studio 2012\\Projects\\CS3280\\Final Project\\IR\\ConsoleApplication2\\bin\\Debug\\ConsoleApplication2.vshost.exe.Config line 34)"}
我尝试将invariant置于并获得警告'invariantName'属性是不允许的(也不是不变的).
如果我放入不变量,它会收到此错误: {"Required attribute 'invariant' not found. (C:\\Users\\recursor\\Documents\\Visual Studio 2012\\Projects\\CS3280\\Final Project\\IR\\ConsoleApplication2\\bin\\Debug\\ConsoleApplication2.vshost.exe.Config line 34)"}
所以我似乎有一种情况,我不能使用一种,但另一种不支持不变类型.我不知道如何解决这个问题.我已经能够连接到数据库和连接字符串工作.我只是使用实体框架搜索或修改任何数据.
我尝试添加这个,但它也没有帮助.
<system.data>
<DbProviderFactories>
<remove name="MySQL Data Provider"/>
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for …Run Code Online (Sandbox Code Playgroud)