【发布时间】:2016-04-23 07:46:13
【问题描述】:
我在数据库中有一个表,它有一个列名。当我在 Grid 中显示之前读取表格时,我必须更改所有 Items 名称。我必须使用这个 LINQ 子句
Dim hospitalList = From l In db_Obj.VWrmz_HospitalCorrection
Select hospitalName = l.HOSPITAL_NAME.Substring(0,l.HOSPITAL_NAME.IndexOf("--"))
当我使用上面的代码时,我得到这个错误信息:
LINQ to Entities 无法识别方法 'Int32 IndexOf(System.String, System.StringComparison)' 方法和这个 方法无法转换为商店表达式。
但是当我删除 IndexOf() 时,它可以正常工作:
Dim hospitalList = From l In db_Obj.VWrmz_HospitalCorrection
Select hospitalName = l.HOSPITAL_NAME.Substring(10)
我该怎么做才能从我的单元格中删除这样的东西?
【问题讨论】:
-
如果未找到字符串“--”,您将返回 -1。所以你会得到 Substring(0, -1) 这会导致错误消息。
-
@jdweng - 虽然这是一个问题,但它不是错误的根源。错误的根源在于Entity Framework引擎不知道如何将
IndexOf翻译成sql表达式。