После многолетнего увольнения я пытаюсь восстановить приложение, над которым я первоначально работал, используя VSEW 2012 в VB.NET Web Forms против .NET 4.5.1 и EF 5.0. Приложение прекрасно перекомпилировалось с использованием VS2019 и .NET 4.7.2, пока я не начал пытаться «модернизировать» вещи, а затем все чертовски свободно. Когда я обновился до EF 6, сообщения о сущностях "не определены" появились сотнями. Ах, я вижу, что EF5 -> EF6 не такой уж цельный.
Итак, чтобы помочь определить, что происходит, я вернулся и создал новое простое приложение Web Forms и сгенерировал модель EF 6.2 из моей существующей базы данных. Все хорошо, но чтобы использовать мой Entity Container (ниже, AlphaEntities), я должен «удвоить» корневое пространство имен для проекта в операторе Imports. Никогда раньше не делал ничего подобного.
Полагаю, я просто ржавый, но чего мне не хватает? Я думаю, что ответ на это простое приложение поможет мне определить, что нужно исправить в моем "реальном" приложении.
Imports TestWebApp1.TestWebApp1 '<=== Note Root Namespace Doubled Up
Public Class _Default
Inherits Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Using dbc As New AlphaEntities
testLabel.Text = dbc.Customers.First.Name.ToString
End Using
End Sub
End Class
РЕДАКТИРОВАТЬ: После ночного сна, я нашел часть диалогового окна конфигурации проекта, которая устанавливает импортированные пространства имен (которые не были сразу видны, учитывая, как устроены мои окна VS) и выбрал «удвоенное» пространство имен TestWebApp1.TestWebApp1 , Теперь ссылка на контейнер сущностей корректно компилируется без явной ссылки Imports. Поэтому я проверил мою старую конфигурацию VSEW 2012 на другом ноутбуке и а) она не требовала, чтобы корневая область имен проверялась / импортировалась таким образом, и б) даже не отображалась опция «удвоение» для импорта. Итак, мне все еще непонятно, почему а) мне нужно было вообще импортировать пространство имен в конфигурации проекта (что-то изменилось в этом отношении после VS2012?), И б) нужно импортировать TestWebApp1.TestWebApp1, а не только TestWebApp1.