在网上搜索针对.NET的轻量级快速ORM时,我遇到了BLToolKit,它在性能,开放性,可维护性和灵活性方面看起来绝对令人惊叹.
但是,我也注意到它很少受到社区的喜爱,只有9个问题.任何人都可以对此有所了解吗?
人们只是推销他们自己的DAL,爱上Entity Framework,还是使用其他一些ORM?
我搜索使用数据加速orm更快和速度获取和实现我在OrmBattle http://www.ormbattle.net/中遇到了BLToolKit,这在性能,速度,可维护性和灵活性方面看起来绝对令人惊叹.但是还不是很清楚? 如果有人对BLToolkit有所了解,那么它在http://www.ormbattle.net/中的真实比较是否可以帮到我?谢谢
我并不是直接实体映射器的粉丝,因为我仍然认为SQL查询是最快的,并且在手工直接写入数据库时使用最优化(使用正确的连接,分组,索引等).
在我目前的项目中,我决定尝试BLToolkit,我对它的Ado.net包装和速度非常满意,因此我查询数据库并获得强大的C#类型对象.我还编写了一个生成存储过程帮助程序的T4,因此在调用存储过程时我不必使用魔术字符串,所以我的所有调用都使用强类型的参数.
基本上我的所有CRUD调用都是通过存储过程完成的,因为我的许多查询都不是简单的select语句,特别是我的创建和更新也会返回结果,这很容易使用只进行一次调用的存储过程完成.无论如何...
BLToolkit的最大缺点(我希望每个人都能评估BLToolkit知道这一点)不是它的功能或速度,而是它非常稀缺的文档以及支持或缺乏.因此,这个库的最大问题是进行试验和错误以使其正常工作.这就是为什么我也不想使用它的太多不同部分,因为我使用的越多,我必须自己解决的问题就越多.
我对BLToolkit有什么替代方法:
基本上它应该非常轻量级,基本上应该只有一个简单的Ado.net包装器和对象映射器.
最重要的要求是:易于使用,得到很好的支持,社区也在使用它.
是否可以使用BLToolKit(http://bltoolkit.net)为对象列表(批量插入)创建一组记录?
如果是,这怎么可能?
非常感谢!
我在我的一个项目中使用BLToolKit,我试图让它工作.我不喜欢的是我试图将一堆临时值平均分到一分钟,但正在生成的select语句按分钟分组然后选择原始时间.我想我正在正确地做linq表达式(但话又说回来,我没有得到我期望的结果).(这是C#,如果你关心)任何人都知道出了什么问题?
var test = (from r in db.SensorReadingRaws
where r.TimeLogged < DateTime.Now.AddMinutes(-2)
group r by new
{
Sensor = r.SensorNumber,
//group time down to the minute
Time = r.TimeLogged.AddSeconds(-1 * r.TimeLogged.Second).AddMilliseconds(-1 * r.TimeLogged.Millisecond)
} into grouped
select new SensorReading
{
SensorNumber = grouped.Key.Sensor,
TimeLogged = grouped.Key.Time,
Reading = (int)grouped.Average(x => x.Reading)
}).ToList();
textBox1.Text = db.LastQuery;
Run Code Online (Sandbox Code Playgroud)
结果查询就是这个
SELECT
[r].[SensorNumber],
[r].[TimeLogged],
Avg([r].[Reading]) as [c1]
FROM
[SensorReadingRaw] [r]
WHERE
[r].[TimeLogged] < @p1
GROUP BY
[r].[SensorNumber],
DateAdd(Millisecond, Convert(Float, -DatePart(Millisecond, [r].[TimeLogged])), DateAdd(Second, Convert(Float, -DatePart(Second, [r].[TimeLogged])), …
Run Code Online (Sandbox Code Playgroud) bltoolkit ×5
.net ×2
orm ×2
batch-insert ×1
frameworks ×1
linq ×1
mapping ×1
popularity ×1
sql ×1