C# EF框架调用数据库的函数
1.在数据库中创建一个自定义函数:
REATE FUNCTION [dbo].[f_IsOriginsDisabled]
(
@origins varchar(50),
@needPPTV bit
)
RETURNS bit
AS
BEGIN
if @origins=''
begin
RETURN 1;
end declare @disables varchar(50);
set @disables=''; if @needPPTV=0
begin
set @disables = @disables + ',6';
end select @disables = @disables + ',' + CAST(Id AS varchar(50)) + ',' from Video_Origin
where IsDel=0 and IsEnabled=0 DECLARE @ix int, @pos int, @str varchar(1000);
SET @pos = 1;
SET @ix = 1; WHILE @ix > 0
BEGIN
SET @ix = charindex(',', @origins, @pos)
IF @ix > 0
SET @str = substring(@origins, @pos, @ix - @pos);
ELSE
SET @str = substring(@origins, @pos, len(@origins));
SET @str = ltrim(rtrim(@str));
if charindex(','+@str+',',@disables)<=0
return 0;
SET @pos = @ix + 1;
END RETURN 1; END GO
2.创建EF的数据库上下文:
引用 EntityFramework.Functions程序集
public class MediaDBContext : DbContext, IDisposable
{ public MediaDBContext() : base("MediaDBContext") { } protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Add(new FunctionConvention<MediaDBContext>());
} /// <summary>
/// 判断当前源是否全部失效
/// </summary>
/// <param name="origins">视频源</param>
/// <param name="needPPTV">是否需要PPTV源</param>
/// <returns></returns>
[Function(FunctionType.ComposableScalarValuedFunction, "f_IsOriginsDisabled", Schema = "dbo")]
[return: Parameter(DbType = "bit")]
public bool IsOriginsDisabled([Parameter(DbType = "varchar")]string origins, [Parameter(DbType = "bit")]bool needPPTV)
{
return Function.CallNotSupported<bool>();
}
}
3.调用方式:
var query = context.Movies .Where(m => !context.IsOriginsDisabled(m.Origins, hasPPTV);
上面步骤已经使用EF调用数据库的函数了。
4.详细介绍EF怎样调用数据库中的存储过程与函数文档说明:
https://weblogs.asp.net/dixin/entityframework.functions
C# EF框架调用数据库的函数的更多相关文章
- 在ASP.NET Core 中怎样使用 EF 框架读取数据库数据
添加测试数据 我们首先使用 SQLite Studio 添加三条数据 ID Name 1 李白 2 杜甫 3 白居易 使用 SQLite Studio 打开我们的 blogging.db 数据库,双击 ...
- SqlFunctions 可以在EF种调用sqlserver的函数
在EF5环境下,首先添加EF环境,在引用中添加Syste.Data.Entity,再添加命名空间 using System.Data.Objects.SqlClient; 然后写一个控制器测试 pub ...
- 调用数据库过程函数mysql
Connection conn=JdbcUtil.getConnection();//JdbcUtil是我写的获取connection的工具类 CallableStatement cast=conn. ...
- 使用T4模板为EF框架添加数据库实体注释
网上有一个解决方法如下: http://www.cnblogs.com/stone_w/archive/2012/10/25/2738345.html 不过我试了下没解决太麻烦了 而且一旦EF要重新生 ...
- .NET CORE EF 框架调用存储过程
; //多个参数多表组合值 SqlParameter[] Param = { new SqlParameter("@UserId", System.Data.SqlDbType.V ...
- 使用T4模板为EF框架添加数据库实体注释(转)
1. 下载文件GetSummery.ttinclude2. 把我们下载下来的文件解压,将解压出来的文件放入解决方案中3. 修改下app.config,添加一个连接字符串: <add name=& ...
- 转:EF调用存储过程、函数
EF调用存储过程.函数 2014-04-02 09:12:20| 分类: ORM框架|举报|字号 订阅 一.ef4.1 codeFirst 修改表结构 增加字段等 EF code ...
- 动态切换数据库(EF框架)
文章简略:本文测试项目为Silverlight+EF+RIA Service动态切换数据库的问题 通常,Ado.net EntityFramework的数据库连接字符串Connect ...
- C# CodeFirst(EF框架)代码优先创建数据库
namespace WebEF.Model{ public class ModelContext:DbContext //继承DBcontext 来自EF框架 { public ModelContex ...
随机推荐
- 洛谷P1196 银河英雄传说
大意:你有30000个队列,第i个队列中只有i 有T个操作,1,把某个队列头接到另一个队列尾. 2,问两个元素之间的距离. 本题主要有三种解法. ①带权并查集. 具体来说就是,并查集维护当前集合的大小 ...
- NLog类库使用探索——编程配置
以编程的方式配置,这是我项目中的,我都不知道为什么使用编程.直接配置不很好吗,估计他也没有研究.直接上步骤和代码: 创建一个LoggingConfiguration对象,用来保存配置信息 至少创建一个 ...
- 测试工程师的12最 作为测试猿的你是否都遇到过o_o ....
在51testing偶然看到一篇文章,觉得很不错,就转过来了.看完笑笑之后,如果能带来点思考就更好了. 1.测试工程师最开心的事:发现了一个很严重的bug,特别是那种隐藏很深,逻辑性的错误.偶第一次发 ...
- python常用的内置模块
1.import time time模块与时间相关的功能 在python中时间分为3种 1.时间戳timestamp从1970 1月 1日到现在的秒数 主要用于计算两个时间的差 2.localtime ...
- springcloud使用zookeeper作为config的配置中心
https://blog.csdn.net/CSDN_Stephen/article/details/78856323 仓库更新了,本地如何更新: 使用configserver作为配置中心: http ...
- fork()、vfork()、clone()的区别
因为生活的复杂,这是一个并行的世界,在同一时刻,会发生很多奇妙的事情,北方下雪,南方下雨,这里在吃饭,那边在睡觉,有人在学习,有人在运动,所以这时一个多彩多姿的世界,每天都发生着很多事情,所以要想很好 ...
- ansible的主机的默认配置部分
Ansible默认安装好后有一个配置文件/etc/ansible/ansible.cfg,该配置文件中定义了ansible的主机的默认配置部分,如默认是否需要输入密码.是否开启sudo认证.actio ...
- db mysql / mysql cluster 5.7.19 / my.cnf / thread_pool_stall_limit
s MYSQL Thread Pool简介 在MySQL5.5中,MySQL为每一个数据库连接创建一个线程,并分配其所需要的所有内存,当数据库连接数较大,或者有多个并发同时请求数据库连接时,服务器需要 ...
- mavan安装本地jar
mvn install:install-file -Dfile=E:\IDEAworkspace\importAnalysisDemo\lib\IKAnalyzer2012_u6.jar -Dgrou ...
- 免费开源.net的pdf操作控件PdfiumViewer
最终我找到了pdffiumViewer.开源免费的.net组件. 亲测,可以按第一个下载地址,改写开发.如果对源码感兴趣,可以上GitHub网站 效果图: 1.源代码下载地址: https://do ...