Entity Framework SqlFunctions 教你如何在EF调用sqlserver方法的函数存根_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Entity Framework SqlFunctions 教你如何在EF调用sqlserver方法的函数存根

Entity Framework SqlFunctions 教你如何在EF调用sqlserver方法的函数存根

 2014/7/28 21:23:26  kezhiping  程序员俱乐部  我要评论(0)
  • 摘要:今天算是研究了一天的SqlFunctions,请教了几个群的牛人,居然发现大伙对这个都比较陌生,有的甚至直指EF中是不能调用sqlserver里的方法的。因为之前搞过linqtosql里面的SqlMethod,所以觉得EF里面必须是可以的。首先需要简短介绍一下EF6和EF5,当你NuGet一个EF5的包的时候,只有EntityFramework,而EF6确有EntityFramework和EntityFramework.SqlServer,这2者是有很大区别的。在EF5环境下
  • 标签:Server 方法 SQLSERVER Framework 函数 function 教你 SQL

今天算是研究了一天的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  
诚邀各路高手、初学者加入。

 

发表评论
用户名: 匿名