前两天Insus.NET实现一个功能《在数据库中提供只读数据http://www.cnblogs.com/insus/p/4384411.html ,在数据库中为程序提供静态数据。
它是在Clr存储过程实现。现想使用另外一种方式来解决。如果提供这些静态数需要与其它数据结合Join等,这样象前面的存储过程,有些不太好操作。那我们可以把它实现在table-valued function。

创建一个model:

再创建一个Entity:

打开SqlFunction类,编写table-valued函数:

可复制代码:

 [SqlFunction(DataAccess = DataAccessKind.None,
FillRowMethodName = "FillRow_1A",
TableDefinition = "Id TINYINT,Name NVARCHAR(30), [key] NVARCHAR(30)")
]
public static IEnumerable Tvf_SiteInfor()
{
FruitEntity fe = new FruitEntity();
return fe.GetData();
} private static void FillRow_1A(object source, out SqlByte id, out SqlChars name, out SqlChars key)
{
Si obj = (Si)source;
id = new SqlByte(obj.Id);
name = new SqlChars(obj.Name);
key = new SqlChars(obj.Key);
}

部署至SQL:

可复制代码:

IF EXISTS (SELECT * FROM sys.objects WHERE name = 'Tvf_SiteInfor')
DROP FUNCTION Tvf_SiteInfor;
GO IF EXISTS (SELECT * FROM sys.assemblies WHERE name = 'FruitClr')
DROP ASSEMBLY FruitClr;
GO CREATE ASSEMBLY FruitClr
FROM 'E:\FruitClr.dll'
WITH PERMISSION_SET = SAFE;
GO CREATE FUNCTION Tvf_SiteInfor()
RETURNS TABLE(
Id TINYINT,
[Name] NVARCHAR(30),
[key] NVARCHAR(50)
)
AS EXTERNAL NAME [FruitClr].UserDefinedFunctions.Tvf_SiteInfor;
GO

执行结果:

Clr静态数据Table-Valued函数的更多相关文章

  1. c++学习(三)------static数据与成员函数

    疑惑: static类型成员是类的全局变量,所有类的实例都享有这个变量,或者说这个变量不属于任何一个类的实例. static类型变量可以为private,或public或其他(static数据可以被继 ...

  2. OGG "Loading data from file to Replicat"table静态数据同步配置过程

    OGG "Loading data from file to Replicat"table静态数据同步配置过程 一个.mgr过程 GGSCI (lei1) 3> view p ...

  3. C++学习5-面向对象编程基础(构造函数、转换构造、静态数据成员、静态成员函数、友元)

    知识点学习 类 const作用 C语言的const限定符的含义为"一个不能改变值的变量",C++的const限定符的含义为"一个有类型描述的常量": const ...

  4. C++类静态数据成员与类静态成员函数

    from:://http://blog.csdn.net/taina2008/article/details/1684834 把类中的函数都定义成静态函数,这样相当于在编译时就分配了空间,这样不需要实 ...

  5. C++静态数据成员与静态成员函数

    一般情况下,如果有n个同类的对象,那么每一个对象都分别有自己的数据成员,不同对象的数据成员各自有值,互不相干.但是有时人们希望有某一个或几个数据成员为所有对象所共有,这样可以实现数据共享. 可以使用全 ...

  6. C++ 静态数据成员和静态成员函数

    一 静态数据成员: 1.静态数据成员的定义. 静态数据成员实际上是类域中的全局变量.所以,静态数据成员的定义(初始化)不应该被放在头文件中,因为这样做会引起重复定义这样的错误.即使加上#ifndef ...

  7. C++中static修饰的静态成员函数、静态数据成员

    1.静态成员函数.静态数据成员 在类中,用static修饰的成员函数被称为静态成员函数,而用static修饰的数据成员就称为静态数据成员:与普通的成员函数和数据成员不同, 静态成员函数和静态数据成员有 ...

  8. 《挑战30天C++入门极限》C++类静态数据成员与类静态成员函数

        C++类静态数据成员与类静态成员函数 在没有讲述本章内容之前如果我们想要在一个范围内共享某一个数据,那么我们会设立全局对象,但面向对象的程序是由对象构成的,我们如何才能在类范围内共享数据呢? ...

  9. C++基础(静态数据成员和静态成员函数)

    [简介] 1.静态数据成员在类中声明,在源文件中定义并初始化: 2.静态成员函数没有this指针,只能访问静态数据成员: 3.调用静态成员函数:(1)对象.(2)直接调用: 4.静态成员函数的地址可用 ...

随机推荐

  1. 手把手教你用python打造网易公开课视频下载软件1-总述

    写作前面的话:最近准备重温一下算法导论,感谢大网易把MIT算法导论课程全部贴出来,地址为:http://v.163.com/special/opencourse/algorithms.html,在线看 ...

  2. statcounter统计的浏览器市场占有率

      Source: StatCounter Global Stats - Browser Market Share

  3. 《OOC》笔记(3)——C语言变长参数va_list的用法

    <OOC>笔记(3)——C语言变长参数va_list的用法 C语言中赫赫有名的printf函数,能够接受的参数数目不固定,这就是变长参数.C#里也有params这个关键字用来实现变长参数. ...

  4. make file教程(转)

    最近在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指南>读到makefile就越看越迷糊,可能是我的理解能不行. 于是google到了以下这篇文章.通俗易懂.然后把它贴出 ...

  5. “你没有权限登录JIRA”的解决办法

    为了更好的做部门的项目管理,部门老大让运维部署了一个jira系统.这两天让我试用并摸索如何用. jira默认的用户组有 jira-administrators.jira-developers.jira ...

  6. Java-继承,多态练习0922-06

    编写一个Shape类,具有属性:周长和面积: 定义其子类三角形和矩形,分别具有求周长的方法. 定义主类E,在其main方法中创建三角形和矩形类的对象, 并赋给Shape类的对象a.b,使用对象a.b来 ...

  7. rabbitmq消息队列——"Hello World!"

    RabbitMQ 一."Hello World!" 1.简介: RabbitMQ是一种消息中间件,主要思想很简单:接收消息并转发.你可以将它设想为一个邮局:你往里面发送邮件并确保邮 ...

  8. python学习 操作mysql 环境搭建

    MySqlDB官网只支持Python3.4,这里Python3.5使用第三方库PyMysql连接Mysql数据库. 环境: window7.python3.5 下载PyMysql库:https://p ...

  9. maven install 读取jar包时出错;error in opening zip file

    错误信息: [INFO] ------------------------------------------------------------------------ [ERROR] Failed ...

  10. DOM_02之查找及元素操作

    1.查找之按节点间关系查找周围元素: 2.查找之HTML属性:①按id查找:var elem=document.getElementById("id"):找到一个元素,必须docu ...