問題描述
這是我的代碼
ProductController.cs
public ActionResult Details(string id)
{
product productx = productDB.products.Single(pr => pr.Product1 == id);
return View(productx);
}
Details.aspx
<td>
<%-- : Html.ActionLink("Edit", "Edit", new { id=item.Id }) % -->
<%: Html.ActionLink("Details", "Details", new { id = item.Product1 })%>
</td>
這是我用來從 sql 數據庫中列出一些產品的方法,每個產品都有一個指向詳細信息頁面的鏈接以顯示有關它的更多信息
this is what im using to list some products from a sql database, each product have a link to a Details page to show more informations about it
我試圖只將產品標簽放在該鏈接中,讓它顯示類似www.mysite.comproductsattery(不是ID)
what Im trying is to only put the product label in that link to let it show something like www.mysite.comproductsattery (not the id)
我認為這應該可行,但它會拋出一個數據類型 text 和 nvarchar 在等于運算符中不兼容. 錯誤和(pr => pr.Product1.Equals(id));
都不起作用
I've imagined this should work, but it throw an The data types text and nvarchar are incompatible in the equal to operator. error and
neither (pr => pr.Product1.Equals(id));
works
錯誤很明顯,我問我應該怎么做才能讓它以這種方式工作?
the error is clear and Im asking how should I do to make it work this way ?
謝謝
推薦答案
TEXT
TEXT columns in SQL Server are considered Large Object data and therefore aren't indexable/searchable. They're also deprecated. So, actually, the problem is in your database, not in your application.
如果將列類型更改為 varchar(max)
,則可以存儲相同數量的字符數據,但應該不會出現此問題.然后,將您的 Linq 更新為 SQL 實體,您將不再遇到此特定錯誤.
If you change the column type to a varchar(max)
, you can store the same amount of character data but shouldn't have this problem. Then, update your Linq to SQL entity, and you'll no longer get this particular error.
話雖如此……名為ID
的列不應該是TEXT
或 varchar(max)
,它應該是一個自動遞增的整數 ID 或 GUID (uniqueidentifier
),因此您可能需要重新訪問您的數據庫設計.但假設您有充分的理由將 ID 設為任意大小的字符串值,上述更改將允許您對列進行過濾.
Having said that... a column named ID
shouldn't be TEXT
or varchar(max)
, it should be an auto-increment integer ID or a GUID (uniqueidentifier
), so you might want to revisit your DB design. But assuming you have good reasons for IDs to be string values of arbitrary size, the above change will allow you to filter on the column.
這篇關于數據類型 text 和 nvarchar 在等于運算符中不兼容的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!