ASP.NET Web API 2 с использованием Entity Framework в отдельном проекте - PullRequest
0 голосов
/ 07 июня 2018

Я реализую ASP.NET Web API 2. Я создал свою модель данных объекта ADO.NET в отдельном проекте под названием MyEFDataAccess.Я добавил это как ссылку на проект MyAPI.

В проекте MyAPI я создал следующую модель:

namespace MyAPI.Models
{
  [Table("Customer")]
  public class CustomerViewModel
  {
    [Key]
    public int CustomerID { get; set; }
    public string Code { get; set; }
    public string Name { get; set; }
  }
}

Я создал класс Context в MyAPI какthis:

namespace MyAPI.Models
{
   public class CustomerDbContext : DbContext
   {
      public CustomerDbContext() : base("name=CusetomerDbContext")
      {
      }

      public DbSet<MyEFDataAccess.Customer> CustomerViewModel { get; set; }
   }
}

Затем я создал следующий контроллер для клиентов в проекте MyAPI:

namespace MyAPI.Controllers
{
   public class CustomersController : ApiController
   {
      private readonly CustomerDbContext _context = new CustomerDbContext();

      // GET: api/Customer
      public async Task<List<CustomerViewModel>> GetCustomerViewModels()
      {
        int skip = 0;
        int take = 100;

        return await _context.Customer.Skip(skip).Take(take)
            .Select(customer => new CustomerViewModel
            {
                CustomerID = customer.CustomerID,
                Code = customer.Code,
                Name = customer.Name
            }).ToListAsync();
       }
    }
 }

После запуска проекта я получаю следующую ошибку:

Произошла ошибка, связанная с сетью или экземпляром, при установлении соединения с SQL Server.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: сетевые интерфейсы SQL, ошибка: 50 - Произошла ошибка локальной базы данных. Не удалось создать автоматический экземпляр. Подробную информацию об ошибке смотрите в журнале событий приложений Windows.)

Это потому, что я не ссылаюсьфактический проект Entity Framework.Я не могу найти хороший пример в сети, где ADO.NET Entity Data Model реализована в отдельном проекте.Как я могу достичь этой цели?Есть ли что-то, что мне нужно сделать в CustomerDbContext?Или, может быть, достаточно использовать класс EF DbContext?

Напоминание: все перечисленные выше классы реализованы в проекте API, а не в проекте Entity Framework.

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