您好,欢迎访问一九零五行业门户网

Entity Framework SqlFunctions 教你如何在EF调用sqlserver方法

今天算是研究了一天的sqlfunctions,请教了几个群的牛人,居然发现大伙对这个都比较陌生, 有的甚至直指ef中是不能调用sqlserver里的方法的。 因为之前搞过linq to sql 里面的sqlmethod ,所以觉得ef里面必须是可以的。 首先需要简短介绍一下ef6和ef5,当你n
今天算是研究了一天的sqlfunctions,请教了几个群的牛人,居然发现大伙对这个都比较陌生,
有的甚至直指ef中是不能调用sqlserver里的方法的。
因为之前搞过linq to sql 里面的sqlmethod ,所以觉得ef里面必须是可以的。
首先需要简短介绍一下ef6和ef5,当你nuget一个ef5的包的时候,只有entityframework,而ef6确有entityframework和entityframework.sqlserver,
这2者是有很大区别的。
在ef5环境下,我们如何使用sqlfunctions 呢?
首先添加ef环境,在引用中添加syste.data.entity,再添加命名空间
using system.data.objects.sqlclient;
然后写一个控制器测试
1 public actionresult index() 2 { 3 int count = 0; 4 using (models.testprojectdbentities db = new models.testprojectdbentities()) 5 { 6 var query = from c in db.admininfoes where sqlfunctions.square(1.00)==c.orders select c; 7 count = query.tolist().count(); 8 } 9 viewbag.count = count;10 return view();11 }
运行正常。
ef6环境下,
我们的引用中是存在entityframework和entityframework.sqlserver的,
然后我们添加命名空间
using system.data.entity.sqlserver;
注意一下,跟ef5下的命名空间是不一样的,这个地方我也是出现了误区,当我的添加是using system.data.objects.sqlclient; 的时候一直报错,
这个错误确实比较奇特,我网上找了很多原因一直没有找到,最后一个偶然的机会,才得到这个结果。
然后我们再运行上面的测试代码,应该也是运行通过的。
sqlfunctions里提供了很多的方法,这个都是比较简单的,就不做详细介绍了。
本群提供asp.net mvc,ef,linq,web api技术支持,不在乎人多,在乎人精。
asp.net mvc群 171560784  
诚邀各路高手、初学者加入。
其它类似信息

推荐信息