Локальная база данных, Entity Framework и WinForms - PullRequest
0 голосов
/ 15 октября 2018

Использование: Visual Studio 2017;EF 6;vb.net

Я новичок в EF.Мои знания баз данных средние, хотя я плохо разбираюсь в технических вопросах.Я пытаюсь использовать EF с проектом winforms.Потому что это новый проект, я собираюсь на «Model First».Мне удалось запустить и запустить модель .edmx, и я успешно "Сгенерировал [d] базу данных из модели" на локальном сервере Microsoft MySQL через "(LocalDb) \ MSSQLLocalDb" в качестве имени сервера.

Это мой первый вопрос:

1) Учитывая, что это будет настольное приложение, я не смог найти файл .mdf в папке проекта.Как это будет работать при развертывании?Нужно ли копировать этот файл в папку проекта, чтобы он был встроен в папку развертывания?

Моя вторая проблема более серьезна.После того, как я это сделал, кажется, база данных настроена правильно (если я просматриваю ее через обозреватель сервера, я вижу новые таблицы, соответствующие сущностям).Я также могу найти новые классы, соответствующие объектам, через Object Explorer (хотя я не вижу никаких файлов .tt или других файлов классов, относящихся к ним, в Solution Explorer - как в старых видео и руководствах).

Проблема в том, что, хотя он собирался и запускался до генерации базы данных, теперь существует множество ошибок вокруг кода формы.Похоже, что были изменены.Более того, если вы добавите другую форму, это также показывает дальнейшие ошибки.Ванильная модифицированная форма:

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class MainForm
    Inherits System.Windows.Forms.Form

    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        components = New System.ComponentModel.Container
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(800, 450)
        Me.Text = "MainForm"
    End Sub
End Class

И масса ошибок:

enter image description here

Редактировать

Обновлен выстрелкода формы с ошибками и ссылок, следующих за комментариями ниже:

enter image description here

(редактирование происходит из-за того, что я использовал толкование для описания EF!)

1 Ответ

0 голосов
/ 16 октября 2018

шанс.Выясняется, что если у вас есть одна из ваших таблиц / сущностей, названная «Система» или «Системы», то это создает гаечный ключ в работах через пространства имен.Поменял и больше ошибок нет.Спасибо, Майкрософт, за трату дня моей жизни.Не могу поверить, что здесь нет ловушки / отказоустойчивости ...

согласно этому посту, здесь: building-project-that-using-entityframework-fails-with-a-lot-Из-ошибка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...