如何创建模型容器对象

时间:2011-09-09 23:41:24

标签: database vb.net linq entity-framework sql-server-ce

我曾经问this question一段时间,但没有人能够解决它。所以我做了一些测试,并确定在我的代码中存在问题。所以我的问题是,我做错了什么?

所以我创建了模型容器:

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

我能做些什么才能让这个错误消失吗?我尝试删除项目并使用我以前从Mozy下载的旧的.edmx模型重新创建它。在我更改了.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.EntityClientSystem.Data.SqlServerCe.3.5吗?

EDMX属性Entity Container NamePFModelContainerNamespacePFModel

1 个答案:

答案 0 :(得分:0)

好的,事实证明我需要通过右键单击edmx模型并按

来更新tt模型
Add Code Generation Item

然后

ADO.NET DbContext Generator

我想我以前做过,但我不记得这样做了。