System.Data.EntitySqlException:参数类型'Edm.String'和'Edm.Int32'与此操作不兼容

时间:2013-11-25 20:31:11

标签: c# entity-framework

我不得不在查询中更改一个参数的数据类型,现在我收到此消息标题中列出的错误消息。我一直试图弄清楚问题是什么,我唯一能想到的是,因为查询的一个参数是一个数字而另一个是字符串,这就引起了问题。不幸的是,我对实体框架很新,不知道如何调整我的查询来解决这个问题

以下是我正在使用的查询:

var Item = (DataContextFactory.GetDataContext().Items.Include("Category")
                 .Where("it.CategoryID == " + categoryId + " && it.itemID == " +
                 itemId)).SingleOrDefault();

2 个答案:

答案 0 :(得分:2)

查看您的实体框架代码文件,您将看到名为“SomethingContext”的类,然后尝试此代码:

YourDBContext ctx = new YourDBContext();

var item = (from c in ctx.Category
               where c.CategoryID == categoryId && c.itemID == itemId
                select c).SingleOrDefault();

答案 1 :(得分:2)

如果其中一个是字符串,则您忘记了''

试试这个:(我不知道哪一个是字符串。在这个例子中,categoryId是字符串)

.Where(string.Format("it.CategoryID = '{0}' and it.itemID = {1}", categoryId, itemId))