Как создать модельный контейнерный объект - PullRequest
0 голосов
/ 10 сентября 2011

Я задал этот вопрос некоторое время назад, но никто не смог его решить. Поэтому я провел еще несколько испытаний и определил, что проблема заключается в моем коде. Итак, мой вопрос, что я делаю не так?

Итак, я создаю модель контейнера:

Private mdbContext As PFModelContainer
Private mdbTransactions As Object

До того, как я сделал это так:

Private mdbContext As New PFModelContainer
Private mdbTransactions As mdbContext.Transactions

Думая, что, возможно, я что-то делаю не так, я изменил это на первый способ, а потом делаю:

Public Sub New()
  mdbContext = New PFModelContainer
  mdbTransactions = mdbContext.Transactions
End Sub

Как только я нажимаю mdbContext = New PFModelContainer, я перехожу на PFModel.Designer.vb, где проходит следующее:

Public Sub New()
  MyBase.New("name=PFModelContainer", "PFModelContainer")

На этом этапе он прекращает выполнение кода. Я что-то здесь не так делаю?

Это ошибка, которая выдает мне в окне «Немедленно»:

Произошло первое исключение типа System.ArgumentException в System.Data.Entity.dll

Что я могу сделать, чтобы эта ошибка исчезла? Я попытался удалить проект и воссоздать его с моей старой моделью .edmx, которую я скачал с Mozy, когда он работал. Он перестал работать (насколько я могу судить) после того, как я изменил модель .edmx и обновил ее. Может быть, я сделал что-то еще в другом проекте, но я ничего не помню.

Это то, что находится в app.config:

<connectionStrings>
    <add name="PFModelContainer" connectionString="metadata=res://*/PFModel.csdl|res://*/PFModel.ssdl|res://*/PFModel.msl;provider=System.Data.SqlServerCe.3.5;provider connection string=&quot;Data Source=|DataDirectory|\bin\Debug\MyDatabase#1.sdf&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

Должен ли я ссылаться на System.Data.EntityClient и System.Data.SqlServerCe.3.5 где-нибудь?

EDMX свойство Entity Container Name равно PFModelContainer, а Namespace равно PFModel.

1 Ответ

0 голосов
/ 14 сентября 2011

ОК, получается, что мне нужно обновить модель tt, щелкнув правой кнопкой мыши модель EDMX и нажав

Add Code Generation Item

Затем

ADO.NET DbContext Generator

Полагаю, я делал это раньше, но я не помню, чтобы я это делал.

...