I can't figure out how should I set up dependencies (where to add EntityFramework nuget packages) in this scenario:
Core.Persistence
project which compiles to .NET Standard 2.0 DLL library. I have Entity Framework 6, database entity classes for EF, DbContext etc. It is supposed to depend just onEntityFrameworkCore
.Core.Domain
project which also compiles to .NET Standard 2.0 DLL library. I want to put my business object POCO classes here. This is supposed to have no dependencies.Core.Application
project, this is .NET Standard 2.0 DLL library. I have all application logic here. It depends onCore.Persistence
because it makes database queries andCore.Domain
because it produces bussiness objects from query results.Client.ConsoleClient
project. It makes .NET Framework 4.7.2 executable. It is supposed to depend only onCore.Application
, but I have a problem here.Client.WindowsClient
project which I don't want to focus in this question.
So, this is what I have done:
The problem is, that I'm getting System.IO.FileLoadException
when I try to call method from Core.Application
.
It says that it cannot find System.Interactive.Async
file (which is dependency of EntityFrameworkCore
). After I add this file as dependency - there are other System.IO.FileLoadException
errors.
So, temporarily I have added EF6 Core NuGet package to my Client.ConsoleClient
, and problems with System.IO.FileLoadException
are gone, but I feel I'm doing something wrong.
At this moment I figured out, that Visual Studio is not copying DLL files from Core.xxx
projects outputs into Client.ConsoleClient
project output, and that's why I'm getting errors.
How to fix this properly?