首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将EntitySql函数映射到存储区中命名不同的函数?

如何将EntitySql函数映射到存储区中命名不同的函数?
EN

Stack Overflow用户
提问于 2010-01-17 09:23:56
回答 1查看 294关注 0票数 2

问题是:给定一个理解LeftStr和RightStr的数据库后端:在自定义ADO.NET提供程序实现中,我会在哪里建立到不可变的ADO.NET规范函数的映射?

因此,我正在使用SQLite ADO.NET提供程序,它或多或少地起作用,直到遇到一些存在但名称不同的字符串函数。在缺少/错误映射的函数中有左和右的规范字符串函数。

在SQLite扩展中,等效函数映射到LeftStr和RightStr。

我在寻找信息时出现了不足。由于缺乏这个场景的文档,或者我找不到它的能力,我一直跟踪这个调用,直到用生成的SQL创建命令的工厂方法,并怀疑SemanticResolver是我最好的线索,但我在黑暗中用我能找到的唯一暴露的焊缝ProviderManifest.xml做了几次刺,但我没有joy。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-17 11:19:02

答案假设SampleEntityFrameworkProvider是引用实现。

对提供程序实现执行的每个sql命令都由SampleEntityFrameworkProvider.SampleProviderServices.CreateDbCommandDefinition.处理。

此方法调用CreateCommand,后者将DbCommandTree传递给类型为DbExpressionVisitor的SampleEntityFrameworkProvider.SqlGenerator。

SqlGenerator初始化用于处理翻译的静态字典。

我在SqlGenerator.InitializeCanonicalFunctionHandlers中找到了我要找的东西,并遵循了如下模式。

只需将一个新的处理程序方法添加到要处理的EDM函数的名称上的字典中。

在这种情况下,处理程序只需要在写出函数之前重命名它。

同样,这个功能的默认实现是HandleFunctionDefaultGivenName(DbFunctionExpression e,string storeFunctionName)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2080525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档