データベースを作成してデータを追加したい。EFを追加しましたが、最初にコードを使用したいと思います。私はこれらのクラスを持っています:
public class Question
{
public bool Sort { get; set; }
public int QuestionID { get; set; }
public int Level { get; set; }
public string Description { get; set; }
public string Answer1 { get; set; }
public string Answer2 { get; set; }
public string Answer3 { get; set; }
public string Answer4 { get; set; }
public string RightAnswer { get; set; }
public bool Show { get; set; }
}
public class QuestionDb : DbContext
{
public DbSet<Question> Questions { get; set; }
}
これは私の接続文字列です:
<add name="ConvertCSVtoSQL.QuestionDb" connectionString="Data Source=|DataDirectory|ConvertCSVtoSQL.QuestionDb.sdf"
providerName="System.Data.SqlServerCe.4.0" />
今、私はこのようなデータベースを作成しています:
using (var db = new QuestionDb())
{
foreach (var question in questions)
{
db.Questions.Add(question);
}
db.SaveChanges();
}
データベースを作成しますが、追加したい質問にデータがある場合、エラーが発生します。
'System.Data.SqlServerCe.4.0'ADO.NETプロバイダーのEntityFrameworkプロバイダータイプ'System.Data.Entity.SqlServerCompact.SqlCeProviderServices、EntityFramework.SqlServerCompact、Version = 6.0.0.0、Culture = neutral、PublicKeyToken =b77a5c561934e089'ロードされません。実行中のアプリケーションでプロバイダーアセンブリが使用可能であることを確認してください。詳細については 、http: //go.microsoft.com/fwlink/?LinkId=260882を参照してください。
イニシャライザーをいくつか追加しようとしましたが、役に立ちませんでした。
Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0",@"C:\Path\To\",@"Data Source=C:\Path\To\DbFile.sdf");
Database.SetInitializer(new CreateDatabaseIfNotExists<QuestionDb>());
では、どこに問題があるのでしょうか。