解决方案 »
- C# ComboBoxToolTip 控制的问题 在DropDownStyle 为 DropDown时没问题 设置为DropDownList就运行不了
- 请教个问题,函数中new了一个对象,程序结束的话,会自动调用函数的dispose吗?
- 如何利用Timer类定时执行一个函数A()。
- 涂鸦板的清空按钮怎么做。。
- datagridview数据绑定的小问题,在线等
- C#中有没有可以先执行再判断条件的语句?
- 关于datetime的问题
- 怎么样设置DataGrid中指定行和列的值????
- 用gridview做下载
- help:如何在c#中用ipx协议联结两部机器?
- 企业应用系统点击按钮弹开共享文件夹怎么实现
- 求正则表达式,匹配未闭合的Html标签
前面有家公司用,后来网站太慢,直接导致重做。
听说这个实现的技术比Linq快多了。
而且,附带数据库专业自动优化方案。
楼主用过 ServiceStack.OrmLite 这货也不错,而且多数据库支持的也相当不错。
举报
价格
¥10000.00我X了还1W算了还是用ServiceStack.OrmLite
我用了好久了。
ServiceStack.OrmLite 好复杂啊
ServiceStack.OrmLite 怎么复杂。。很好用呀。我第一次用看他里面的DEMO就懂了 还支持自己写SQL 很方便
你跟踪下ormlite生成的sql,你会发现where查询条件时ormlite是拼接字符串的方式,而不是用的参数化查询的方式比如
Field Like '%A%'
而不是
Filed Like @Field
你跟踪下ormlite生成的sql,你会发现where查询条件时ormlite是拼接字符串的方式,而不是用的参数化查询的方式比如
Field Like '%A%'
而不是
Filed Like @Field这样呀,那新版的还是没有改,还是并接的,改成参数化的对他们的框架改动太大了。
你跟踪下ormlite生成的sql,你会发现where查询条件时ormlite是拼接字符串的方式,而不是用的参数化查询的方式比如
Field Like '%A%'
而不是
Filed Like @Field这样呀,那新版的还是没有改,还是并接的,改成参数化的对他们的框架改动太大了。所以我干脆就还是用dapper或者微软企业库(这都不能算orm)了
这个地址更全面。完全支持参数化,不仅如此,还支持数据库系统函数,和Case,看参数化的例子:
int iUser = 222;
Sql.ExecuteNonQuery((a) =>
Sub.Update(a).Set(a.UserName == "1231").From(a).Where(a.UserId == iUser)
);
老大人家说的参数化不是这个。明白? 你这个 Sub.Update(a).Set(a.UserName == "1231").From(a).Where(a.UserId == iUser) 在低层也是把他变为SQL句子的并接吧。
你跟踪下ormlite生成的sql,你会发现where查询条件时ormlite是拼接字符串的方式,而不是用的参数化查询的方式比如
Field Like '%A%'
而不是
Filed Like @Field这样呀,那新版的还是没有改,还是并接的,改成参数化的对他们的框架改动太大了。
你说的所以我干脆就还是用dapper或者微软企业库(这都不能算orm)了你说的DAPPer是这样子的使用?
connection.Execute(@"insert MyTable(colA, colB) values (@a, @b)",
new[]{new{ a=1, b=1},new{ a=2, b=2},new{ a=3, b=3}}
).IsEqualTo(3);// 3 rows inserted: "1,1", "2,2" and "3,3"var dog = connection.Query<Dog>("select Age = @Age, Id = @Id",new{Age=(int?)null,Id= guid });
如果是这样子,ServiceStack.OrmLite 也有的呀 这种写法的,在底层他就是参数化的
db.Delete(new Person { Id = 1, FirstName = "Jimi", LastName = "Hendrix", Age = 27 });
Assert.That(db.GetLastSql(), Is.EqualTo("DELETE FROM \"Person\" WHERE \"Id\"=@Id AND \"FirstName\"=@FirstName AND \"LastName\"=@LastName AND \"Age\"=@Age"));
db.Exists<Person>("Age = @age", new { age = 42 });
Assert.That(db.GetLastSql(), Is.EqualTo("SELECT \"Id\", \"FirstName\", \"LastName\", \"Age\" FROM \"Person\" WHERE Age = @age"));
db.Exists<Person>("SELECT * FROM Person WHERE Age = @age", new { age = 42 });
Assert.That(db.GetLastSql(), Is.EqualTo("SELECT * FROM Person WHERE Age = @age"));
像这样子他底层就是转参数化了
支持参数化,更加优化,效率更高。
http://download.csdn.net/detail/qq_25613869/8398249
这个地址更全面。参数化是啥意思,没懂。
你跟踪下ormlite生成的sql,你会发现where查询条件时ormlite是拼接字符串的方式,而不是用的参数化查询的方式比如
Field Like '%A%'
而不是
Filed Like @Field这样呀,那新版的还是没有改,还是并接的,改成参数化的对他们的框架改动太大了。所以我干脆就还是用dapper或者微软企业库(这都不能算orm)了
老大人家说的参数化不是这个。明白? 你这个 Sub.Update(a).Set(a.UserName == "1231").From(a).Where(a.UserId == iUser) 在低层也是把他变为SQL句子的并接吧。
不是得,自动识别参数化。
老大人家说的参数化不是这个。明白? 你这个 Sub.Update(a).Set(a.UserName == "1231").From(a).Where(a.UserId == iUser) 在低层也是把他变为SQL句子的并接吧。
不是得,自动识别参数化。
开源,哪个国家人写的?
2.效率会低,比如我没看到要求只取实体的某些属性值的指定,估计都是些select*吧
3.如果这套库能屏蔽数据库差异,比如根据数据库是mss/ora分别生成select into和create as,应该是有适合的使用场景的
1,这样直接,方便。
2,有的啊,除了默认的 select * 还有 var sdfsf123 = Sql.ExecuteList<Users>((a, b) =>
Sub.Top(8).Select(a.UserId, a.UserName).From(a));
效率非常快,里面并非是简单的那种拼接,是有数据库优化方面的东西,在里面。你多执行几次,速度会非常快的。
3,是的,同样的代码,多个数据运行的,但是现在Oracle,和更多的数据库还没有推出。
这个还是不在一个级别上。
SqLamdalf 已经是将数据库对象和.net对象完全结合,等效了。
相当于,编写.net代码就是编写数据代码,而且,还能弥补通用,高效,自动优化的问题。
phommy phommy 分析的很好,数据库差异应该是个重点
不是得,自动识别参数化。
开源,哪个国家人写的?必然是世界人民中的一员,这点毋庸置疑的。
下载地址的文件有5M?为何这么大? 为何报毒呢
这你开玩笑了吧,
那个操作能和这种直观的相比较吗。
而且,这个是存储过程的效率。
数据库对象和.net对象完全等效的。
这你开玩笑了吧,
那个操作能和这种直观的相比较吗。
而且,这个是存储过程的效率。
数据库对象和.net对象完全等效的。
呵呵