10

Chúng tôi đã tạo "Dự án MVC trong Visual Studio 2012 Ultimate" và đã sử dụng "Mã đầu tiên". Bây giờ chúng tôi muốn chuyển đổi dự án này thành "Visual studio 2015 Professional".Lỗi System.StackOverflowException khi chuyển đổi dự án visual studio 2013 sang năm 2015 bằng cách sử dụng Mã khuôn khổ thực thể Đầu tiên

Cấu hình hiện tại dự án: -

.Net Framework Version: 4.5

MVC Version: 5.0 (5.2.2)

sử dụng Entity Framework: 6,0 (6.1.1)

Sự cố: Chúng tôi gặp lỗi trong chức năng "OnModelCreating". Dưới đây tôi đã viết đoạn mã.

protected virtual void OnModelCreating(DbModelBuilder modelBuilder) <---  Error throw at this line System.StackOverflowException 
{ 
    //Foreign key relation 

} 

StackOVerFlow Exception error may be due to recursion

vấn đề khác nhau khác nhau mà chúng tôi đã phải đối mặt

1.Sometime khi tôi nhận xét mối quan hệ chính nước ngoài tại phương pháp OnModelCreating hơn nó làm việc tốt. 2. lý do có thể cho lỗi này có thể được đệ quy nhưng nó đã được trước đó làm việc tốt trong VS 2012 và VS 2013. Bây giờ có gì sai với phiên bản Visual Studio 2015 này.
3.Trong studio Visual 2015, một số phần của phương pháp OnModelCreating hoạt động tốt trong một máy nhưng cùng một mã không hoạt động trong máy khác.

+0

@GertArnold Tôi đã sử dụng Entity Framework 6.1.3 trong dự án của mình từ khi bắt đầu nhưng đây không phải là vấn đề gì cả. Có thể một số phụ thuộc vào Entity Framework 6.1.3 có thể nhưng tôi không tìm thấy bất cứ điều gì ở bất kỳ đâu. – Dilip0165

+0

@GertArnold Thực ra tôi đã thử cả phiên bản 6.1.1 và 6.1.3 đầu tiên của EF. – Dilip0165

+0

Vì vậy, "Cấu hình dự án hiện tại" cũng áp dụng cho dự án VS2012? Tôi nghĩ .Net 4.5 không được hỗ trợ trong VS2012 (không nhớ). Chỉ cần chắc chắn: bạn đã cài đặt lại gói EF NuGet trong VS2015 chưa? –

Trả lời

0

Điều tôi có thể làm là bắt đầu nhận xét một loạt các thực thể từ DbSet/Model và tiếp tục làm điều đó cho đến khi nó hoạt động một lần. Sau đó, tôi sẽ từ từ thêm lại chúng để xem mô hình nào đang gây ra sự cố. Nếu bạn nhận xét tất cả các DbSets/Models và nó vẫn bị treo, thì bạn cần phải nhấn Ctrl-Alt-E và đánh dấu vào ô thứ 2 để bạn chia nhỏ TẤT CẢ các ngoại lệ để xem bạn có thể tìm thấy một ngoại lệ sâu hơn không. Nếu không, chúng ta cần phải xem chính xác dòng mã đang chết hoặc có thể chúng ta sẽ không thể giúp được gì nhiều.

Các vấn đề liên quan