EF中使用数据库的标量值函数

参考资料:https://msdn.microsoft.com/zh-cn/library/dd456847(v=vs.110).aspx

     http://stackoverflow.com/questions/12481868/how-to-use-scalar-valued-function-with-linq-to-entity

1、首先修改edmx里添加的这个<Function>,将IsComposable属性改为false,去掉ReturnType属性,然后添加子节点<CommandText>

<Function Name="ToDistance" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
  <CommandText>
    SELECT dbo.ToDistance(@Lng1,@Lat1,@Lng2,@Lat2)
  </CommandText>
  <Parameter Name="Lng1" Type="float" Mode="In" />
  <Parameter Name="Lat1" Type="float" Mode="In" />
  <Parameter Name="Lng2" Type="float" Mode="In" />
  <Parameter Name="Lat2" Type="float" Mode="In" />
</Function>

2、双击打开edmx文件,选择模型浏览器,展开****.store,存储过程/函数,选中心仪的函数,右键,导入,在弹出框中选标量,选参数值,确定。

posted @ 2015-08-13 15:35  Varorbc  阅读(626)  评论(0编辑  收藏  举报