Я реализую 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.