EntityParameterCollection仅接受非null EntityParameter类型对象,而不接受EntityParameter类型的对象

时间:2014-02-12 08:56:20

标签: sql visual-studio-2010 c#-4.0 sql-server-2012 entity-framework-6

例外:

  

异常详细信息:System.InvalidCastException:The   EntityParameterCollection仅接受非null EntityParameter类型   对象,而不是EntityParameter类型的对象。

代码:

using (var db = new Entities())
{
    var cmd = db.Connection.CreateCommand();
    cmd.CommandText = "SELECT TOP 1 LanguageString FROM Language AS L WHERE L.ID = @pLanguageID";

    var pli = new EntityParameter("pLanguageID", DbType.AnsiStringFixedLength);
    pli.Size = 3;
    pli.Value = languageID;
    cmd.Parameters.Add(pli); // exception here
}

堆栈顶部跟踪:

  

[InvalidCastException:EntityParameterCollection只接受   非null EntityParameter类型对象,而不是类型的对象   EntityParameter]
  System.Data.EntityClient.EntityParameterCollection.ValidateType(对象   价值)+8069508
  System.Data.EntityClient.EntityParameterCollection.Add(Object value)   23

表格信息:

CREATE TABLE [dbo].[Language](
    [ID] [varchar](3) NULL,
    [LanguageString] [varchar](23) NULL
) ON [PRIMARY]

其他信息:

我尝试了更一般的EntityParameter定义,但同样的问题也出现了。我只对数据库具有只读权限。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

呃,我导入了错误的EntityParameter

要导入的正确名称空间似乎是System.Data.EntityClient