gpt4 book ai didi

sql-server - 无法找到任一列 "dbo"或用户定义函数无法找到任一列

转载 作者:行者123 更新时间:2023-12-02 20:31:58 26 4
gpt4 key购买 nike

我能够在 SSMS 内执行该函数,它返回预期值

SELECT *
FROM dbo.AccDocumentHeaders
WHERE TypeDocumentId = 1
AND dbo.MiladiToShamsi(DocumentDate, 'Saal') = 1395

但是在 Entity Framework 上,我在尝试执行时收到此错误:

var q= "SELECT *  
FROM dbo.AccDocumentHeaders
WHERE TypeDocumentId=1
AND [dbo].MiladiToShamsi(DocumentDate,'Saal')=1395 ";

var result = _uow.AccDocumentHeaders.SqlQuery(q).ToList();

Cannot find either column "dbo" or the user-defined function Cannot find either column "dbo" or the user-defined function or aggregate "dbo.MiladiToShamsi", or the name is ambiguous

任何帮助将不胜感激。

最佳答案

当您使用 SSMS 时,您使用的是本地管理员帐户,该帐户的默认架构设置为 dbo。但是,如果您的 EF 的连接字符串 使用另一个用户,则该用户的默认架构与 dbo 不同,因此,您将得到Cannot find column "dbo"...错误。因此,请确保您向当前尝试执行的用户授予函数的执行权限,或使用正确的架构 MyUserXYZ.MiladiToShamsi() 并且您应该使用此 MyUserXYZ< 创建此函数 模式也是如此。

关于sql-server - 无法找到任一列 "dbo"或用户定义函数无法找到任一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48436061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com