参数'Prompt'无法转换为带有Entity Framwork的'String'类型

时间:2017-01-11 14:48:13

标签: sql .net vb.net entity-framework

这是我第一次尝试使用Entity Framework。

我创建了一个包含一个表(Paths)和两个属性(PathID,PathName)的数据库。在vb-net中,我只希望用户选择一个带有FolderBrowserDialog的文件夹,并将该文件夹的路径保存在“PathName”列中。运行时,我收到错误“Argument'Prompt'无法转换为'String'类型”

代码很简单直接,所以我无法弄清楚我做错了什么。

Public Class AddPaths
Dim Db_EF As New vs_check_work_Entities
Dim tbl_path As New Paths
Private Sub AddPaths_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub btn_AddPath_Click(sender As Object, e As EventArgs) Handles btn_AddPath.Click
    Try
        Dim FldrBrser As New FolderBrowserDialog

        If FldrBrser.ShowDialog = DialogResult.OK Then

            TxtBoxPath.Text = FldrBrser.SelectedPath

            With tbl_path
                .PathName = FldrBrser.SelectedPath
            End With

            Db_EF.Paths.Add(tbl_path)
            Db_EF.SaveChanges()

        End If
    Catch ex As Exception
        MsgBox(ex.Message)
        'MsgBox(ex.InnerException)
    End Try
End Sub

Private Sub PathsBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles PathsBindingNavigatorSaveItem.Click
    Db_EF.SaveChanges()
End Sub

结束班

错误发生在

Db_EF.Paths.Add(tbl_path)

我还试着在桌子上添加一个字符串进行测试:

With tbl_path
                .PathName = "hello world"
            End With

            Db_EF.Paths.Add(tbl_path)
            Db_EF.SaveChanges()

我得到同样的错误。

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

可能需要查看您的实体模型。但是,我认为您的表上有一个名为Prompt的数据库属性。可能是Prompt被定义为字符串以外的东西,但数据库需要nvarchar(或varchar)。

答案 1 :(得分:0)

我的整个EF项目设置不正确。我想我先做了代码。现在我尝试从Designer开始,一切运作良好。不知道问题是什么,但它现在有效。