gpt4 book ai didi

c# - 数据类型 text 和 nvarchar 在等于运算符中不兼容

转载 作者:太空狗 更新时间:2023-10-29 18:04:18 30 4
gpt4 key购买 nike

这是我的代码

ProductController.cs

public ActionResult Details(string id)
{
product productx = productDB.products.Single(pr => pr.Product1 == id);
return View(productx);


}

详细信息.aspx

    <td>
<%-- : Html.ActionLink("Edit", "Edit", new { id=item.Id }) % -->
<%: Html.ActionLink("Details", "Details", new { id = item.Product1 })%>
</td>

这是我用来从 sql 数据库中列出一些产品的方法,每个产品都有一个指向详细信息页面的链接以显示有关它的更多信息

我尝试的是仅将产品标签放在该链接中,让它显示类似www.mysite.com\products\battery(不是 id)的内容

我原以为这应该可行,但它抛出一个The data types text and nvarchar are incompatible in the equal to operator.错误和(pr => pr.Product1.Equals(id)); 都不起作用

错误很明显,我问我应该怎么做才能让它以这种方式工作?

谢谢

最佳答案

TEXT SQL Server 中的列被视为大对象数据,因此不可索引/不可搜索。他们也被弃用了。所以,实际上,问题出在您的数据库中,而不是您的应用程序中。

如果将列类型更改为 varchar(max),则可以存储相同数量的字符数据,但不会出现此问题。然后,更新您的 Linq to SQL 实体,您将不会再收到此特定错误。

话虽如此...名为 ID 的列不应该是 TEXT varchar(max),它应该是一个自动递增的整数 ID 或 GUID (uniqueidentifier),因此您可能需要重新审视您的数据库设计。但假设您有充分的理由将 ID 设置为任意大小的字符串值,则上述更改将允许您对列进行过滤。

关于c# - 数据类型 text 和 nvarchar 在等于运算符中不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2726649/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com