Получил это из примера:
protected override ObjectContext CreateDataSource()
{
NorthwindContext nw = new NorthwindContext();
// Configure DbContext before we provide it to the
// data services runtime.
nw.Configuration.ValidateOnSaveEnabled = false;
// Get the underlying ObjectContext for the DbContext.
var context = ((IObjectContextAdapter)nw).ObjectContext;
// Return the underlying context.
return context;
}
Модифицировал его, чтобы использовать класс DbContext, который есть в моем проекте.
РЕДАКТИРОВАТЬ: Уточняю, что яприведение из класса DbContext так же, как в примере:
public class NorthwindContext : DbContext
{
// Use the constructor to target a specific named connection string
public NorthwindContext()
: base("name=NorthwindEntities")
{
// Disable proxy creation as this messes up the data service.
this.Configuration.ProxyCreationEnabled = false;
// Create Northwind if it doesn't already exist.
this.Database.CreateIfNotExists();
}
Выполнение кода выдает ошибку при приведении строки к преобразованию DbContext:
Невозможно привести объект типа 'MyProject.MyDbContext 'для ввода' System.Data.Entity.Infrastructure.IObjectContextAdapter '.
Несмотря на то, что DbContext реализует IObjectContextAdapter:
public class DbContext : IDisposable, IObjectContextAdapter
Я нашел несколько вопросовздесь, в SO и других источниках с гуглом, но никаких решений я не нашел.
Я использую Entity Framework 4.2, попытался обновить бета-версию 4.3, и я не уверен, что она застряла.
Общая цель состоит в том, чтобы обслуживать данные в WCF как DataService.
Обновление: копание глубже Я обнаружил, что существует проблема неоднозначности между тем, чем был мой DbContext (From EntityFramework.dll)и тип в проекте WCF (из Microsoft.data.Entity.CTP)
Не уверен, как получить то, что я хочу от обоих здесь ....