VS2010とEF4.3を使用してASP.NETMVC4アプリケーションを開発しています。外部データベースからいくつかのデータを取得し、ある日再コンパイルしようとするまで、すべてが期待どおりに機能しました。コンパイル後、次のEFエラーが発生します。
無効な列名'CreatedOn'。
DBやコードの変更は行われませんでした。読みやすくするためにインデントを追加しただけです。TFSの以前のアプリケーションバージョンでも同じ例外がスローされます。
私のエンティティにはプロパティがなくCreatedOn
、データベースにもそのようなフィールドはありません。また、それは必要ありません。また、どのような場合でも必要ありません。
この例外を回避するにはどうすればよいですか?
これは、データへのアクセスに使用するカスタムDBコンテキストです。
public class MyContext<T> : DbContext where T : class, IDataEntity
{
public MyContext(string connectionKey)
: base("name=" + connectionKey)
{
Configuration.AutoDetectChangesEnabled = false;
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Label>().Property(item => item.Id).HasColumnName("LabelId");
modelBuilder.Entity<Label>().Ignore(item => item.ChangedBy);
}
}
そしてこれはLabelクラスです
public class BaseEntity : IDataEntity
{
public int Id { get; set; }
public string Name { get; set; }
public string ChangedBy { get; set; }
}
public class Label : BaseEntity
{
}