我使用Model-First方法和Oracle數據庫。DeleteDatabase不被提供者支持,Oracle使用Entity Framework
UPDATE2:現在
固定在包括seed
數據,我得到這個錯誤「DeleteDatabase不是由供應商支持」
UPDATE1如果我改變從種子數據類型
public class MySeedData : DropCreateDatabaseAlways<ToolContext>
至
public class MySeedData : DropCreateDatabaseIfModelChanges<ToolContext>
此錯誤被替換爲b ÿ另一個錯誤:
Exception Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility
種子數據
public class MySeedData : DropCreateDatabaseAlways<ToolContext>
{
protected override void Seed(ToolContext context)
{
base.Seed(context);
var category = new List<CategoryValue>
{
new CategoryValue{Id=1, Name = "Associate"},
new CategoryValue{Id =2, Name = "Professional"},
new CategoryValue{Id=3, Name = "Master"},
new CategoryValue{Id = 4, Name = "Product"},
new CategoryValue{Id = 5, Name = "Portfolio"}
};
category.ForEach(cert => context.CategoryValues.Add(cert));
context.SaveChanges();
}
}
的Web.Config
<connectionStrings>
<add name="LMSPriorToolContext"
connectionString="metadata=res://*/Models.LMSPriorToolModel.csdl|res://*/Models.LMSPriorToolModel.ssdl|res://*/Models.LMSPriorToolModel.msl;
provider=Oracle.DataAccess.Client;
provider connection string="DATA SOURCE=DEV;PASSWORD=1234;PERSIST SECURITY INFO=True;USER ID=abc""
providerName="System.Data.EntityClient" />
</connectionStrings>
的Application_Start()
Database.SetInitializer<ToolContext>(new SeedData());
Main.cs:發生異常在此文件我知道,當你第一次嘗試訪問數據庫,種子數據的方法或腳本來執行。
using (var dbContext = new ToolContext())
{
var items = dbContext.CategoryValues;
foreach(CategoryValue category in **items**) // **Getting error here**
{
Console.WriteLine(category.Name);
}
}
參考好像我失去了一些東西,因爲其中沒有涉及到Oracle或ODAC
堆棧跟蹤
at System.Data.Common.DbProviderServices.DbDeleteDatabase(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection)
at System.Data.Objects.ObjectContext.DeleteDatabase()
at System.Data.Entity.Internal.DatabaseOperations.DeleteIfExists(ObjectContext objectContext)
at System.Data.Entity.Database.Delete()
at System.Data.Entity.DropCreateDatabaseAlways`1.InitializeDatabase(TContext context)
at System.Data.Entity.Database.<>c__DisplayClass2`1.<SetInitializerInternal>b__0(DbContext c)
at System.Data.Entity.Internal.InternalContext.<>c__DisplayClass8.<PerformDatabaseInitialization>b__6()
at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)
請有什麼建議我在這裏失蹤。
你的系統上有什麼版本的Oracle.DataAccess.dll? – jfrankcarr
11.2.0.3但是對於我使用Oracle10g的數據庫。另請檢查另一個有問題的錯誤 – Rohit
此鏈接說明模型優先不支持種子:http://forums.asp.net/t/1722132.aspx/1 – Rohit