app开发者平台在数字化时代的重要性与发展趋势解析
612
2022-12-02
EF中使用数据库的标量值函数
数据库中的自定义函数,如果是表值函数,EF里面会自动加上代码,还算能寻到门路进行调用。
但如果是标量值函数呢?
从数据库里更新了模型以后,系统只在edmx里加了一句(右键,点打开方式,选XML方式可见):
这样叫人怎么用啊?可参考以下资料:
[test]goselect dbo.[talkrecord_f_GetCount]();
直接读取标量值函数的值,而不是用于过滤。这样子的话,仅参考上面那个例子,我怎么写也写不出来。
后来还是在老外的解答中找到了答案:
1、首先修改edmx里添加的这个
怕,我的孩子,可以手动改成:
public virtual System.Data.Entity.Core.Objects.ObjectResult
2、双击打开edmx文件,右键,模型浏览器,展开****.store,存储过程/函数,选中心仪的函数,右键,导入,在弹出框中选标量,选参数值,确定。如此,系统终于肯为我们在***.context.cs里添加代码矣:
[csharp] view plain copy 1. public virtual System.Data.Objects.ObjectResult
但烦恼还没结束。编译也许会报错:
无法将类型“System.Data.Entity.Core.Objects.ObjectResult
别怕,我的孩子,可以手动改成:
[csharp] view plain copy 1. public virtual System.Data.Objects.ObjectResult
3、调用
[csharp] view plain copy 1. public static int GetCount()2. {3. int count = 0;4. using (Model.testEntities db = new Model.testEntities())5. {6. var first = db.talkrecord_f_GetCount().First().Value;7. int)first;8. }9. return count;10. }
参考资料:
http://stackoverflow.com/questions/12481868/how-to-use-scalar-valued-function-with-linq-to-entity
这些都是没有什么价值的工具使用类经验,在上面耗费时间,对技术本身并没有什么帮助,微软就是喜欢这样,搞了一大堆工具,并且还常常丢弃旧工具,然后出来更多的新工具,我们就是在这些工具里面疲于奔命,浪费青春,到头来,什么也没学到,知道的,只是一些如何使用微软工具的垃圾技能。这是我痛恨微软,抛弃微软,转向java的根本原因。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~