我曾经问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="Data Source=|DataDirectory|\bin\Debug\MyDatabase#1.sdf"" providerName="System.Data.EntityClient" />
</connectionStrings>
我应该在某个地方引用System.Data.EntityClient
和System.Data.SqlServerCe.3.5
吗?
EDMX属性Entity Container Name
为PFModelContainer
,Namespace
为PFModel
。
答案 0 :(得分:0)
好的,事实证明我需要通过右键单击edmx模型并按
来更新tt模型Add Code Generation Item
然后
ADO.NET DbContext Generator
我想我以前做过,但我不记得这样做了。