Tôi đã có dự án nhắm mục tiêu .NET 4.0 và sử dụng EF 5.0. Sau khi thay đổi khung đích thành 4.5 (và cập nhật tham chiếu EF 5.0 để sử dụng assembly .NET 4.5), có vẻ như các chú thích dữ liệu không hoạt động nữa. Ví dụ:Chú thích dữ liệu EF không "hoạt động" sau khi nhắm mục tiêu .NET 4.5
[Table("ApplicationSession", Schema = "Application")]
public class ApplicationSessionEntity
{
[Key, ForeignKey("GenericSession")]
public int GenericSessionID { get; set; }
...
sử dụng để làm việc tốt, nhưng bây giờ khi chạy, các DbContext
ném một InvalidOperationException
: Unable to determine the principal end of an association...
.
Tôi có thể thêm các lệnh gọi hàm api Fluent để giải quyết vấn đề này (và thực hiện), nhưng sau đó nó không nhận ra rằng bảng không nằm trong lược đồ "dbo". Một lần nữa, tôi biết rằng api Fluent có thể được sử dụng để giải quyết vấn đề này, nhưng tại sao các chú thích dữ liệu đột nhiên bị bỏ qua?
Cảm ơn!
Bạn có tham chiếu đến System.ComponentModel.Annotations không? Các chú thích đã được chuyển đến assembly này trong .NET Framework 4.5. Những gì tôi nghĩ có thể xảy ra là bạn bằng cách nào đó được biên dịch với các chú thích các bản báo cáo cũ và thời gian chạy EF5 đang tìm kiếm những cái mới. Bạn có thể nhấn F12 trên Bảng và xem nó đi đâu để kiểm tra điều này. – Pawel
@Pawel Tôi có tham chiếu đến System.ComponentModel.DataAnnotations. Tôi tin rằng nó đã được yêu cầu khi chúng tôi nâng cấp lên EF 5.0. Tôi đã thử sử dụng các phiên bản .NET 4.0 và .NET 4.5 của assembly đó và cả hai đều thể hiện cùng một hành vi. – Rob
Bạn có ở đâu đó tham chiếu đến EntityFramework.dll có phiên bản 4.4.0.0 không? – Pawel