分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(3)
来源:互联网 发布:淘宝ifashion怎么进去 编辑:程序博客网 时间:2024/06/05 18:45
测试:
1)实体类,这个类没有采用元数据匹配的方式,而是采用专门的类来存储Map信息,主要是为了进行表达式书写
public class TestEntity { private static readonly TableInfo _TableInfo = new TableInfo(){ TableName="EEEE"}; public static TableInfo TableInfo { get { return _TableInfo; } } private static readonly FieldInfo _Id = new FieldInfo() { FieldName = "id" }; public static FieldInfo Id { get { return TestEntity._Id; } } private static readonly FieldInfo _Name = new FieldInfo() { FieldName = "Name" }; public static FieldInfo Name { get { return TestEntity._Name; } } }
2)测试类
public class TestExp { public static string Test() { DbExpression theQuery = new DbExpression(); theQuery.Select(AliasExp.T1[TestEntity.Id], AliasExp.T1[TestEntity.Name]) .From(AliasExp.T1[TestEntity.TableInfo]) .Where(AliasExp.T1[TestEntity.Id] > ConstExp<int>.C("Name", 100)); return theQuery.Expression; } }
上面的表达式和参数就直接可以给Command来执行,我只做了select,其实Update,Delete表达式都是可以的。当然,如果继续重载操作符,可以把常量表达式除掉,可以像一般书写那种方式来书写,比如:A>100,A="100".这里采用了偷懒的方式。当然要完全模拟还是有困难,因此表达式也需要保留直接写SQL和设置参数的功能。
这种表达式的优点是跟写SQL类似,但全部针对实体,可以保持一致性,而且还可以借助VS的智能提示和语法检查功能。缺点是不太纯粹,性能上也会有损失。
输出结果,大家可以自己动手运行来看.
PS:CSDN的这个编辑器有点问题,稍微久点(1分钟不到)就不能保存了.
PS:希望C#能支持自定义操作符号,这样就可以模拟出更纯粹的表达式.
- 分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(3)
- 分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(1)
- 分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(2)
- 分享一个自己做的一个3DM手机客户端
- 写一个简单的linq查询语句
- ESQL查询之简单的Oracle数据库查询测试
- 简单的linq 表达式
- 简单的Linq查询
- 自己模拟的一个简单的tomcat
- 自己做的一个简单的记事本
- 分享一个小巧简单的基金查询工具(自己写的)
- 无奈自己写了一个简单的JDBC查询缓存,分享一下
- Linq表达式的简单应用
- 分享一个自己做的图片轮播的插件
- Linq查询的简单使用
- 分享一个自己做的ajax请求页面
- (14)使用查询表达式的LINQ
- 第十五章 使用查询表达式的LINQ
- 分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(2)
- WIFI 安卓Android系统手机通过USB连接电脑上网
- SQLite报错:getWritableDatabase called recursively的解决
- 孩子该学的十件事
- 数学家外尔
- 分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(3)
- 如何用C#在Excel中生成图表
- 第十四周作业 1
- Win XP系统网络应用技巧集锦
- 第十四周作业 2.0
- 科研中成功的品质
- 工业测试软件 开发心得
- VirtualPC下Linux中subversion部署关键点
- 20家最具创新力的科技创业公司