Has*_*sen 8 c# asp.net-mvc linq-to-sql
这是我的代码
ProductController.cs
public ActionResult Details(string id)
{
product productx = productDB.products.Single(pr => pr.Product1 == id);
return View(productx);
}
Run Code Online (Sandbox Code Playgroud)
Details.aspx
<td>
<%-- : Html.ActionLink("Edit", "Edit", new { id=item.Id }) % -->
<%: Html.ActionLink("Details", "Details", new { id = item.Product1 })%>
</td>
Run Code Online (Sandbox Code Playgroud)
这就是我用来列出sql数据库中的一些产品,每个产品都有一个指向详细信息页面的链接,以显示有关它的更多信息
我试图只是将产品标签放在该链接中,让它显示类似www.mysite.com\products\battery(不是id)
我认为这应该工作,但它抛出一个数据类型文本和nvarchar在等于运算符不兼容.错误,但都(pr => pr.Product1.Equals(id));
不起作用
错误是明确的,我问我应该怎么做才能让它以这种方式工作?
谢谢
Aar*_*ght 26
SQL Server中的TEXT列被视为大对象数据,因此不可索引/可搜索.他们也被弃用了.实际上,问题出在您的数据库中,而不是在您的应用程序中.
如果将列类型更改为a varchar(max)
,则可以存储相同数量的字符数据,但不应出现此问题.然后,更新您的Linq to SQL实体,您将不再收到此特定错误.
说过......一个名字ID
不应该是TEXT
或者 varchar(max)
,它应该是一个自动增量整数ID或一个GUID(uniqueidentifier
),所以你可能想重新访问你的数据库设计.但假设您有充分理由将ID作为任意大小的字符串值,则上述更改将允许您对列进行过滤.
归档时间: |
|
查看次数: |
21993 次 |
最近记录: |