Ядро asp.net ef dbcontext в библиотеке классов - PullRequest
0 голосов
/ 28 мая 2018

В моем проекте я использую 2 dbcontexts, один из них - аутентификация Microsoft по умолчанию, а другой - мой собственный контекст базы данных.Теперь у меня есть проект asp, библиотека логического класса и библиотека класса данных, которая содержит мой собственный DBContext с наборами данных.

Мой вопрос сейчас заключается в том, как я могу выполнять запросы к базе данных без необходимости передавать контекст из основного проекта asp в библиотеку класса данных.

, чтобы я мог вызывать базу данных в классе логики безнужна связь с проектом asp.Вроде как N-уровневая архитектура.

Спасибо

дальнейшие объяснения У меня есть библиотека классов данных GameContext

 public class GameContext : DbContext
{
    public GameContext(DbContextOptions options) : base(options) { }

    public DbSet<Enemy> Enemies { get; set; }
    public DbSet<News> theNews { get; set; }
    public DbSet<Character> Characters { get; set; }
    public DbSet<Class> Classes { get; set; }
    public DbSet<Inventory> Inventories { get; set; }
    public DbSet<Item> Items { get; set; }
    public DbSet<Models.Type> Types { get; set; }
    public DbSet<Inventory_has_Item> Inventory_has_Item { get; set; }
    public DbSet<Enemy_has_Item> Enemy_has_Item { get; set; }
    public DbSet<Equipment> Equipment { get; set; }    
protected override void OnModelCreating(ModelBuilder modelBuilder)
    {            
        modelBuilder.Entity<Inventory_has_Item>()
            .HasKey(t => new { t.InventoryId, t.ItemId });

        modelBuilder.Entity<Enemy_has_Item>()
            .HasKey(t => new { t.EnemyId, t.ItemId });

    }        
}

из моей библиотеки классов логики Я хочу что-то сделатькак эта

public async Task<List<GameData.Models.Enemy>> getAllEnemies()
    {


        GameData.Models.test test = new test(_context);


        List<GameData.Models.Enemy> enemies;


        enemies = await _context.Enemies.ToListAsync();
        return enemies;
    }

проблема заключается в том, что теперь мне нужно передать _context из моего asp mvc в контроллеры для вызова метода в логической библиотеке следующим образом

 public EnemiesController(GameContext context)
    {
        _context = context;
        _enemies = new Enemies(_context);                        
    }

это работает, когдаделать что-то вроде индекса, но когда я делаю создание, я получаю ошибку injecten зависимости с контекстом

...