我在我的网站中实现了一个使用Linq-To-Sql. 引擎的输出是一个列表Result。
为了提高安全性和性能,我在CachedResult我的数据库中添加了一个表。它有这些列:
ID, Date, Output
WhereOutput是一个字符串,它表示一个列表,integers其中的IDs 是另一个表的。
使用该Where方法,我能够从数据库中提取这些元素。问题是他们的顺序是基于他们在表格中的顺序,而不是integers我的字符串中的顺序。
因此,我以这种方式添加了OrderBy该方法:
db.Uploads.Where(upl => W.Contains(upl.UploadID)).OrderBy(pp => W.IndexOf(pp.UploadID));
W这是integers(从数据库中提取的)的列表。
问题是它抛出了一个异常,说Linq-To-Sql translator无法将该List.IndexOf方法转换为适当的 SQL 查询。
我想知道我这样做是否正确并且有解决方案,或者我完全错了,我必须寻求另一种方式?(即制作另一个与 有关系的表CachedResults)