List<string> digits = Enumerable.Range(0, 10).Select(i => i.ToString()).ToList();
var query = from p in db.Products
where digits.Contains(p.productName.Substring(0, 1))
select p;
Run Code Online (Sandbox Code Playgroud)
或者,将以下内容添加到DBML映射文件中:
<Function Name="ISNUMERIC" IsComposable="true">
<Parameter Name="Expression" Parameter="Expression" Type="System.String" DbType="NVarChar(4000)" />
<Return Type="System.Boolean" DbType="BIT NOT NULL"/>
</Function>
Run Code Online (Sandbox Code Playgroud)
然后你可以说:
var query = from p in db.Products
where db.ISNUMERIC(p.productName.Substring(0, 1))
select p;
Run Code Online (Sandbox Code Playgroud)
您也可以在XML映射文件中执行此操作,但我无法记住我手头定义的必要代码的语法DataContext.如果您需要,请告诉我.
我非常喜欢第一种方法,但ISNUMERIC如果分析告诉我纯LINQ版本是性能瓶颈,可以看看使用SQL内置.
| 归档时间: |
|
| 查看次数: |
1204 次 |
| 最近记录: |