使用Entity SQL调用UDF但没有FROM子句?

时间:2010-10-19 14:22:50

标签: c# entity-framework

尝试调用只接受参数并返回标量的UDF。我见过的例子都使用From子句:http://blogs.microsoft.co.il/blogs/gilf/archive/2009/10/20/calling-user-defined-functions-udfs-in-entity-framework.aspx

但我只想调用UDF,我不想与使用from子句的任何实体“加入”它:

  string fieldTag = "TagNameHere";
  var sql = "SELECT XyzModel.Store.FieldNameToFormIdMap(@fieldTag)";
  System.Data.Objects.ObjectQuery<int> query =
    new System.Data.Objects.ObjectQuery<int>(sql, xyzEntitiesContext);
  query.Parameters.Add(new System.Data.Objects.ObjectParameter("fieldTag", fieldTag));

我收到错误:“查询语法无效。”

这是使用.NET 3.5

我可以使用旧式ADO.NET,但除了用于实体框架的连接字符串之外,我不必管理另一组连接字符串。

1 个答案:

答案 0 :(得分:2)

只需从查询中删除SELECT,如下所示:
var sql =“XyzModel.Store.FieldNameToFormIdMap(@fieldTag)”;