C# Winforms проектов с Entity Framework как DAL - который. NET? - PullRequest
0 голосов
/ 11 апреля 2020

Я опытный php разработчик и пытаюсь освоить Microsoft Entity Framework. Моя серверная база данных Oracle, и я использую ODP. Net в качестве соединения. Я установил VS2019 Community и прорабатываю несколько уроков.

Я пытаюсь добиться того, чтобы моя библиотека C# (DAL) работала хорошо с моим C# winforms проекты. Мой DAL - это проект *. 1078 * Standard 2.0, а мои проекты winforms: NET Framework 4.7.2. Мое решение настроено следующим образом.

  • C# Решение
    • Проект 1 - C# Библиотека (DAL) -. NET Стандарт 2.0
    • Nuget Зависимости
      • Microsoft.EntityFrameworkCore.Design (2.2.6)
      • Microsoft.EntityFrameworkCore.Tools (2.2.6)
      • Oracle .EntityFrameworkCore (2.19.60)
    • Project 2 - C# Winforms -. NET Framework 4.7.2
    • Nuget Dependencies
      • Microsoft.EntityFrameworkCore (2.2.6)
      • Oracle .EntityFrameworkCore (2.19.60)
      • Oracle .ManagedDataAccess.Core (2.19.60)

Кодовые фрагменты кода находятся в DAL (проект 1)

DbContext

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {

            optionsBuilder.UseOracle(@"<myConnString>");
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {

            modelBuilder.ApplyConfiguration(new PlatePurchaseOrderConfiguration());
        }
        public DbSet<PlatePurchaseOrder> LtPurchaseOrders { get; set; }
    }

ModelConfiguration

class PlatePurchaseOrderConfiguration : IEntityTypeConfiguration<PlatePurchaseOrder>
    {
        public void Configure(EntityTypeBuilder<PlatePurchaseOrder> builder)
        {
            builder.HasKey(t => t.Id);
        }
    }

Модель

public class PlatePurchaseOrder
    {
        public int Id { get; set; }
        public bool IsExpeditied { get; set; }
        public DateTime ExpectedReturnDate { get; set; }
    }

Это код запуска winforms (проект 2)

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            var context = new PlatePurchaseOrderContext();
            var query = context.LtPurchaseOrders.ToList();
        }
    }

И после запуска моего кода я получаю сообщение об ошибке

Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.3.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

I команды Надо представить, что я смешиваю проекты и. NET компоненты, вероятно, портят вещи. Есть ли хороший способ обойти это? Что я должен сделать, чтобы правильно настроить это решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...