自定义 SQL 函数和 Code First (EF 4.1)

2024-01-11

我在用着实体框架 4.1 RC和代码优先方法。如何调用自定义 SQL 函数?

如果我使用Edm函数属性,我应该指定什么命名空间?

[EdmFunction("Namespace", "GetAge")] 
public static int GetAge(Person p) 
{  
    throw new NotSupportedException(…); 
}

当我尝试使用此类函数执行 LINQ 查询时,会引发以下异常:

类型上指定的方法“...” '...' 无法翻译为 LINQ to 实体存储表达式。


如果要调用 SQL 函数,则必须执行自定义 SQL 查询。为此,请使用 context.Database.SqlQuery。实体框架支持存储过程的映射,但 DbContext API (EF 4.1) 不支持此功能。如果要调用存储过程,则必须再次使用 context.Database.SqlQuery。存储过程永远不能在 Linq 查询中使用。

EdmFunction是 ObjectContext API 和实体设计器的功能。命名空间设置为 EDMX 文件中定义的命名空间。使用代码优先时,您没有 EDMX 文件,并且无法定义函数映射。

顺便提一句。如果遵循代码优先方法,则不应有任何存储过程或 SQL 函数,因为数据库是由模型(代码)定义并由实体框架生成的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义 SQL 函数和 Code First (EF 4.1) 的相关文章

  • 在多线程场景中正确锁定 List

    好吧 我只是无法正确理解多线程场景 抱歉再次问类似的问题 我只是在互联网上看到许多不同的 事实 public static class MyClass private static List
  • 加载组件无法正常工作

    我尝试将程序集加载到 C 源代码中 所以我首先编译源文件 private bool testAssemblies String sourceName FileInfo sourceFile new FileInfo sourceName C
  • 从 .NET 应用程序登录 Windows

    我认为它应该是一个Windows服务 当给定某些条件时 它应该执行登录到机器的操作 机器将在 登录屏幕 中检查网络服务 以了解登录时应使用的用户名和密码 这可以吗 我不想要 自动登录 Windows 功能 Thanks AFAIK 无法完成
  • 流行的“易失性轮询标志”模式被打破了吗?

    假设我想使用布尔状态标志来进行线程之间的协作取消 我意识到人们最好应该使用CancellationTokenSource反而 这不是这个问题的重点 private volatile bool stopping public void Sta
  • 部署.Net应用程序

    我在部署 net windows 应用程序时确实有某些疑问 部署机器是否需要安装 Net框架 如果不是这样 我的应用程序安装程序 exe 是否包含编译器或类库与设置集成 另外 我可以将我的 net 应用程序部署在除windows 是否支持s
  • app.UseHsts() 和 app.UseExceptionHandler() 有什么区别?

    在 NET Core 应用程序的 Startup cs 文件中 默认情况下它使用 public void Configure IApplicationBuilder app IHostingEnvironment env if env Is
  • Linq Any 始终返回 true

    我已经使用 Linq to Entities 多年 但这是我第一次遇到这个问题 我有Tips and Items表 每个提示可以有很多项目 我的数据库中只有 3 个项目 编辑项目时 我想确保GivenId对于具有相同提示的项目 字段是唯一的
  • 如何有条件地调用带有约束的泛型方法? [复制]

    这个问题在这里已经有答案了 Suppose I have an unconstrained generic method that works on all types supporting equality It performs pai
  • 通过名称获取枚举成员的值?

    假设我有一个变量 其值 例如 listMovie 是一个名称enum member public enum Movies regMovie 1 listMovie 2 member whose value I want 在此示例中 我想获取
  • 我应该如何优化 .net 代码中对一个简单存储过程的多次调用?

    我有一个非常简单的存储过程 create procedure spFoo v varchar 50 as insert into tbFoo select v 我有 50 个值要插入到 tbFoo 中 这意味着在我的 c 代码中我调用 sp
  • 多线程:您在什么时候创建了太多线程?

    我正在开发一个多线程应用程序 该应用程序最初是单线程 后来扩展到多线程以实现性能提升 我有一个主线程 它将工作分成更小的块 并将其卸载到处理这些块的工作线程 此部分使用信号量进行控制 以在任何时间仅允许 X 个工作线程 工作线程生成数据块
  • AutoMapper 无法识别特定于配置文件的前缀

    我正在尝试使用 AutoMapper 从属性名称之前有前缀的类中获取数据 并将其映射到没有这些前缀的第二个类 但是 我不一定希望它always删除该前缀 我只想让它为这个特定的映射执行此操作 我的源类如下所示 public class Ad
  • 将参数传递给 .NET 定义的命令

    我需要在 Autocad 2000i 的命令行上编写一个命令 并且希望 autocad 提示输入参数 然后我的 vb net 程序将根据收到的参数进行操作 基本上我想我的解决方案都在这里 http through the interface
  • 用于存储和检索每个用户敏感数据的.Net 设计模式

    Net 服务器应用程序是否有与存储和检索敏感的每个用户信息 例如第 3 方凭据 相关的参考模式 我的初步设计思路是 生成具有适当强私钥的自签名 X509 证书 导出证书和密钥并将其存储在 USB 密钥中 该 USB 密钥将被锁在宝箱中并由龙
  • .net 垃圾收集器何时运行?

    当我调试 net 代码时 如何知道垃圾收集器何时运行 我不想控制垃圾收集器何时运行 我只希望能够知道它何时运行 我有一些代码资源不足 我知道资源没有被使用 我想知道 GC 何时运行以释放它们 哦 我想到的资源是来自 Sql 连接池的连接 而
  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 回发或回调参数无效。使用“”启用事件验证

    当我从客户端回发页面时 出现以下错误 我有修改客户端 asp ListBox 的 JavaScript 代码 我们该如何解决这个问题 错误详细信息如下 Server Error in XXX Application Invalid post
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt

随机推荐