我在linq查询中有一个'where'子句,我必须将int转换为字符串,我尝试在SO中读取类似的遇到但我仍然难以在我的方法中应用解决方案.这是抛出'System.Web.HttpUnhandledException'错误的行,感谢任何帮助:
|| (p.ProductID!= null && p.ProductID.ToString().Contains(s)):
public void search(string s)
{
CommerceEntities db = new CommerceEntities();
var products = from p in db.Products
where (p.ModelName != null && p.ModelName.Contains(s))
|| (p.ProductID != null && p.ProductID.ToString().Contains(s))
|| (p.ModelNumber != null && p.ModelNumber.Contains(s))
|| (p.Description != null && p.Description.Contains(s))
select new
{
// Display the items
ProductID = p.ProductID,
ProductImage = p.ProductImage,
UnitCost = p.UnitCost
};
ListView_Products.DataSourceID = null;
ListView_Products.DataSource = products;
}
Run Code Online (Sandbox Code Playgroud)
在EF中,int没有重载,因此您需要转换为double或decimal.你必须使用SqlFunctions.StringConvert
像这样:
p.ProductID != null && SqlFunctions.StringConvert((double)p.ProductID).Contains(s)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8487 次 |
| 最近记录: |