Я построил сайт, который работает отлично на месте. Затем я попытался установить Azure. Все, что не использует базу данных работает нормально, но когда я пытаюсь получить доступ к базе данных я получаю:UnintentionalCodeFirstException на удаленном сервере (Azure)
System.Data.Entity.Infrastructure.UnintentionalCodeFirstException:
Code generated using the T4 templates for Database First and Model First
development may not work correctly if used in Code First mode...
at MySite.Infrastructure.DatabaseContainer.OnModelCreating(DbModelBuilder modelBuilder)
at System.Data.Entity.Internal.LazyInternalContext.CreateModelBuilder()
at System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext)
at System.Data.Entity.Internal.RetryLazy`2.GetValue(TInput input)
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
at System.Data.Entity.Internal.Linq.InternalSet`1.ActOnSet(Action action, EntityState newState, Object entity, String methodName)
at System.Data.Entity.Internal.Linq.InternalSet`1.Add(Object entity)
at System.Data.Entity.DbSet`1.Add(TEntity entity)
at MySite.Services.ServiceBase`1.Add(T o)
at MySite.Controllers.SomeController.New(SomeObject objectParam)
Моей локальной строка подключения
<add name="DatabaseContainer" connectionString="metadata=res://MySite.Data/Database.csdl|res://MySite.Data/Database.ssdl|res://MySite.Data/Database.msl;provider=System.Data.SqlClient;provider connection string="data source=.\sqlexpress;initial catalog=MyDatabase;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Моей удаленная строка соединения
<add name="DatabaseContainer" connectionString="metadata=res://MySite.Data/Database.csdl|res://MySite.Data/Database.ssdl|res://MySite.Data/Database.msl;provider=System.Data.SqlClient;provider connection string="Data Source=serverstuff.from.azure;Initial Catalog=MyDatabase;User Id=MyUser;Password=MyPassword;App=EntityFramework"" providerName="System.Data.EntityClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"
/>
Мой DbContext
класс
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace MySite.Infrastructure
{
using MySite.Models;
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class DatabaseContainer : DbContext
{
public DatabaseContainer()
: base("name=DatabaseContainer")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<SomeObject> SomeObjects { get; set; }
}
}
MySite.Services.ServiceBase`1.Add (Т о) просто
db.SomeObjects.Add(o);
db.SaveChanges();
Я проверил Azure, создается база данных, и есть таблица "SomeObject".
Я не понимаю причину, по которой он пытается выполнить OnModelCreating
. Локально он работает отлично.
Что может быть причиной этого?
Является ли база данных «связанным ресурсом» веб-сайта на вашей ливневой панели? – dav1dsm1th
@ dav1dsm1th да. Я вижу это на вкладке «Связанный ресурс». – BrunoLM
прохладный. У меня возникли проблемы с подключением к базам данных, когда они не являются также «связанными ресурсами». Вы видите соединения, которые преуспевают (или не работают) с вашего сайта? – dav1dsm1th