I'm trying to use EF Core in my project so I download the last stable version 3.1.3
I created a DbContext
and classes from my database using Scaffold-DbContext
command in Package Manager console, and after all thing are establish I try to using this code
using (var dbContext = new SIMContext())
{
var department = new Department();
department.NameDepartment = txtDepartment.Text;
department.DescriptionDepartment = txtDescription.Text;
await dbContext.AddAsync(department).ConfigureAwait(true);
await dbContext.SaveChangesAsync().ConfigureAwait(true);
}
but when I try to save data to the database and in this line of code
await dbContext.AddAsync(department).ConfigureAwait(true);
I get this error
System.IO.FileLoadException
HResult=0x80131040
Message=Impossible de charger le fichier ou l'assembly 'System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' ou une de ses dépendances. La définition trouvée du manifeste de l'assembly ne correspond pas à la référence de l'assembly. (Exception de HRESULT : 0x80131040)
Source=Smart Industrial Management
StackTrace:
at Smart_Industrial_Management.PL.Frm_Department.<btnSave_Click>d__7.MoveNext() in C:\Users\MBoua\source\repos\SIM Windows7 - EF Core5\Smart Industrial Management\PL\Frm_Department.cs:line 107
at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at Smart_Industrial_Management.PL.Frm_Department.btnSave_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at DevExpress.XtraEditors.BaseButton.OnMouseUp(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at DevExpress.Utils.Controls.ControlBase.WndProc(Message& m)
at DevExpress.XtraEditors.BaseControl.WndProc(Message& msg)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
at Smart_Industrial_Management.PL.FrmLogin.<btnLogin_Click>d__7.MoveNext() in C:\Users\MBoua\source\repos\SIM Windows7 - EF Core5\Smart Industrial Management\PL\FrmLogin.cs:line 108
I try to clean my solution and clear NuGet caches but I still have the same error.
I try the same code with .NET Core 5 and EF Core 5 and I succeeded.
My project is on:
.NET framework 4.7.2
EF Core 3.1.3
System Threading Tasks Extensions 4.5.4
How can I solve this problem?.
It is looking for an earlier version of System.Threading.Tasks.Extensions, Version=4.2.0.0.
You can try Assembly version redirection: https://learn.microsoft.com/en-us/dotnet/framework/configure-apps/redirect-assembly-versions
This can of course produce problems if you are redirecting between major versions of an assembly.
Hope this helps