Tôi đang phát triển một ứng dụng ASP.NET MVC 4 sử dụng VS 2010 và EF 4.3. Nó lấy một số dữ liệu từ một cơ sở dữ liệu bên ngoài và tất cả đã làm việc như mong đợi cho đến khi tôi cố gắng biên dịch lại nó một ngày nào đó. Sau khi biên soạn, tôi nhận được lỗi EF sau:Khuôn khổ thực thể 4.3. Tên cột không hợp lệ 'CreatedOn'
Invalid column name 'CreatedOn'.
Không có thay đổi DB hoặc mã nào - Tôi vừa thêm một số thụt lề để dễ đọc. Các phiên bản ứng dụng trước đó từ TFS cũng ném cùng một ngoại lệ.
Tôi không có CreatedOn
tài sản trong thực thể của mình và không có trường như vậy trong cơ sở dữ liệu và tôi không cần nó và không muốn nó trong mọi trường hợp.
Cần phải làm gì để tránh ngoại lệ này?
Đây là tùy chỉnh DB bối cảnh của tôi, tôi sử dụng để truy cập dữ liệu:
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);
}
}
Và đây là lớp Label
public class BaseEntity : IDataEntity
{
public int Id { get; set; }
public string Name { get; set; }
public string ChangedBy { get; set; }
}
public class Label : BaseEntity
{
}
Bạn có thể đăng lớp 'Nhãn' không? – Eranga
Đây là lớp Nhãn: Lớp công khai BaseEntity: IDataEntity { public int Id {get; bộ; } Tên chuỗi công khai {get; bộ; } chuỗi công khai ChangedBy {get; bộ; } } lớp công khai Nhãn: BaseEntity {} – msaruyev
Vấn đề này cũng được thảo luận tại đây: http://stackoverflow.com/questions/19646659/createdon-column-in-entity-framework-6 – AXMIM