我正在尝试使用以下代码将我的Web API连接到MySql数据库:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
string conn_string = "server=server;database=database;uid=uid;pwd=pwd;";
MySqlConnection conn = new MySqlConnection(conn_string);
services.AddDbContext<TaskContext>(options =>
{
options.UseMySQL(conn);
});
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseMvc();
}
}
但我总是收到带有此描述的System.TypeLoadException:
System.TypeLoadException:'方法'克隆'的类型 'MySQL.Data.EntityFrameworkCore.Infraestructure.Internal.MySQLOptionsExtension' 来自程序集'MySql.Data.EntityFrameworkCore,Version = 8.0.8.0, Culture = neutral,PublicKeyToken = c5687fc88969c44d'没有 实施'。
我正在使用Microsoft Visual Studio社区2017预览版(2),我的专业版是在.NET Core 2.0中。我还使用MySql.Data.EntityFrameworkCore.dll和Microsoft.AspNetCore.All(2.0.0-preview2-final)。我已经为MySql改变了很多次librairy,但没有成功。
知道为什么总会发生这种情况吗?可能是什么原因?
答案 0 :(得分:7)
嗯,事实证明你不能将MySql.Data.EntityFrameworkCore用于.Net Core 2.0(现在)。我不得不回到.Net Core 1.3来使它工作......我们或许可以在近乎未来的时候使用它!
答案 1 :(得分:3)
使用Pomelo.EntityFrameworkCore.MySql 2.0.0。 使用.NET Core 2.0可以正常使用
答案 2 :(得分:0)
添加“ Pomelo.EntityFrameworkCore.MySql”包。 在Stertup.cs和appsettings.json和DbContext中:
from tkinter import Tk, LEFT, BOTH, StringVar
from tkinter.ttk import Entry, Frame
import functools
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("Entry")
self.pack(fill=BOTH, expand=1)
self.contents = []
self.ent = []
for i in range(0,5):
self.contents.append(StringVar())
# give the StringVar a default value
for i in range(0,5):
self.entry = Entry(self)
self.entry.grid(row=0,column=i)
self.entry["textvariable"] = self.contents[i]
self.entry.bind('<KeyRelease>', self.on_changed)
self.ent.append(self.entry)
def on_changed(self, event):
print('contents: {}'.format(self.contents.get()))
return True
def main():
root = Tk()
ex = Example(root)
root.geometry("800x400")
root.mainloop()
if __name__ == '__main__':
main()
答案 3 :(得分:0)
MySql.Data.EntityFrameworkCore支持EF Core 2.1(并且仅与EF Core 2.1兼容)。使用不匹配的EF Core和数据库提供程序库会导致与您报告的错误类似的错误。
如果您需要与EF Core 3.0兼容的MySQL EF Core提供程序,则当前唯一的选择是https://www.nuget.org/packages/Pomelo.EntityFrameworkCore.MySql的3.0.0-rc1版本(请参见https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql#compatibility的兼容性表)! )。
否则,如果要使用MySql.Data.EntityFrameworkCore,则需要回滚到EF Core 2.1。