0

當我嘗試將問題添加對象到我的數據庫的一部分:C#的ASP.NET MVC的實體類型[CLASS_NAME]是不是該機型爲當前上下文

using (var dataTransaction = data.Database.BeginTransaction()) 
{ 
try 
{ 
    foreach (var a in list) 
    { 
     list2.Add(a); 
     counter += 1; 
    } 
    while (counter <= 20) 
    { 
     list2.Add(null); 
     counter += 1; 
    } 
    var question = new Models.Questions 
    { 
     word_1 = list2[0], 
     word_2 = list2[1], 
     word_3 = list2[2], 
    }; 

    data.Question.Add(question); 
    data.SaveChanges(); 
    dataTransaction.Commit(); 
} 

...我收到以下操作異常:

實體類型問題不是當前上下文模型的一部分。

我已經做了大量的研究來解決這個問題,但沒有解決方案的幫助。

1. 我已經從基地添加參數 「名稱= DataContext的」 構造:

public DataContext() : base("name = DataContext") 
    { 
     Database.SetInitializer<DataContext>(new CreateDatabaseIfNotExists<DataContext>()); 
    } 

2. 我已經添加方法OnModelCreating:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Questions>(); 
    } 

3. 我試圖改變類型od數據,我的意思是字段word_1,word_2,在我的數據庫word_3

4. 我已經改變了基於ADO .NET連接字符串EF設計模型的連接字符串(向後):

ADO .NET基於:

基於
<add name="questions_answersEntities" 
    connectionString="metadata=res://*/App_Data.QuestionsAnswers.csdl| 
             res://*/App_Data.QuestionsAnswers.ssdl| 
             res://*/App_Data.QuestionsAnswers.msl; 
           provider=System.Data.SqlClient; 
           provider connection string= 
           &quot;data source=IGOR\IGOR_SQL_SERVER; 
           initial catalog=questions_answers; 
           integrated security=True; 
           multipleactiveresultsets=True; 
           App=EntityFramework&quot;" 
    providerName="System.Data.EntityClient" /> 

EF設計

<add name="DataContext" 
    providerName="System.Data.SqlClient" 
    connectionString="Server=.\SQLEXPRESS;Database=QuestionsAnswers;Integrated Security=True;"/> 

我有類問題繼承自DbContext如下所示。

public class Questions : DbContext 
{ 
    [Key] 
    public int id_question { get; set; } 

    public string word_1 { get; set; } 
    public string word_2 { get; set; } 
    public string word_3 { get; set; } 
} 

我還類的DataContext沿用的DbContext

public class DataContext : DbContext 
{ 
    public DataContext() : base("name = DataContext") 
    { 
     Database.SetInitializer<DataContext>(new CreateDatabaseIfNotExists<DataContext>()); 
    } 

    public DbSet<Questions> Question { get; set; } 
    public DbSet<Answers> Answers { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Questions>(); 
    } 
} 
  • 我還試圖用data.Entry(問題),而不是data.Question.Add(問題)和相同的錯誤異常出現。
  • 在此先感謝您的幫助!

    回答

    0

    問題解決了。我已經意識到,有關對象數據的連接字符串無效,並且是指向LocalDb的默認連接字符串。
    在HomeController中,在

    using (SqlConnection conn = new SqlConnection(connString)) 
    

    範圍我改變建設:

    using (var data = new Models.DataContext())

    var data = new Models.DataContext();

    ,我已經添加了明顯的歸屬連接字符串數據爲follwing:

    data.Database.Connection.ConnectionString = @"data source=IGOR\IGOR_SQL_SERVER;" + 
           "initial catalog = questions_answers;" + "integrated security = True;" + 
           "MultipleActiveResultSets = True;"; 
    

    這個數據後,我能夠將數據保存在我的數據庫。

    相關問題