Я читаю книгу «Программирование сущности: DbContext», Джулия Лерман и Роуэн Миллер.Как получить примеры «Программирование Entity Framework: DbContext»?
Я загрузил решение «BAGA» от http://www.thedatafarm.com/learnentityframework/downloadfiles/dbcontext/StartingSolution.zip. Я чувствую себя полным инструментом здесь, потому что я не могу получить какие-либо образцы кода для запуска на моем компьютере.
Обычно, когда я работаю с Entity Framework, у меня есть строка подключения в моей конфигурации, которая сообщает Entity Framework, к какой базе данных подключиться и к каким учетным данным использовать.
Однако в этом решении BAGA я не могу найти строку подключения или ссылку на базу данных в любом месте решения. Я предполагаю, что код должен выполняться локально или somesuch, но когда я ввожу и запускаю любой из выборочных запросов или обновлений, компьютер приостанавливается на 20 секунд, а затем генерируется следующее исключение из метода SaveChanges
: «Поставщик не вернул строку ProviderManifestToken».
Я предполагаю, что это решение должно либо использовать внутреннюю базу данных, либо я должен набирать строку соединения где-то, но я не вижу, где в книге он рассказывает мне, как сделать это решение Работа.
В нем четко указано, что решение использует EF Code First.
консоль код приложения в BAGA выглядит следующим образом:
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Text;
using DataAccess;
using Model;
namespace BreakAwayConsole
{
class Program
{
static void Main(string[] args)
{
Database.SetInitializer(new InitializeBagaDatabaseWithSeedData());
// Call the latest example method here
// NOTE: Some examples will change data in the database. Ensure that you only call the
// latest example method. The InitializeBagaDatabaseWithSeedData database initializer
// (registered above) will take care of resetting the database before each run.
AddMachuPicchu();
}
// Add example methods here
private static void AddMachuPicchu()
{
using (var context = new BreakAwayContext())
{
var machuPicchu = new Destination
{
Name = "Machu Picchu",
Country = "Peru"
};
context.Destinations.Add(machuPicchu);
context.SaveChanges();
}
}
}
}
Как спросил @Wyktor Zychla, вот код BreakAwayContext.cs:
using System.Data.Entity;
using Model;
namespace DataAccess
{
public class BreakAwayContext : DbContext
{
public DbSet<Destination> Destinations { get; set; }
public DbSet<Lodging> Lodgings { get; set; }
public DbSet<Trip> Trips { get; set; }
public DbSet<Person> People { get; set; }
public DbSet<Reservation> Reservations { get; set; }
public DbSet<Payment> Payments { get; set; }
public DbSet<Activity> Activities { get; set; }
}
}
Как вы можете видеть здесь, там не указан конструктор.
Я добавил код для 'BreakAwayContext'. Объявление конструктора объявлено, поэтому, где бы я поместил строку соединения? –
Если конструктор отсутствует, EF ищет строку соединения формы: name = "DataAccess.BreakAwayContext" connectionString = "yourconnectionstringgorshere" provider = "System.Data.SqlClient" в разделе connectionstrings файла конфигурации по умолчанию. –
Спасибо. Я попробую это, когда вернусь завтра. –