error sqlexception:在.net核心项目中运行executesql时,对象名“@p0”无效,但查询看起来正常

ehxuflar  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(314)

在某些背景下,我有一个保存组织的数据库,该表有一个字段告诉我一个数据库名称。该数据库名称用于查找其他数据库中存在的orgunits。我需要查一下这个,因为涉及到很多数据库,而且它会根据组织的不同而变化。
我试过用几种不同的方法运行这个查询,每次都不能正确地使用sql并执行。我甚至找不到类似的错误在网上搜索,所以它是混乱的,因为我知道其他人都遇到过这个。
这里有几个不同的尝试,结果是一样的。我也尝试过改变我的数据库上下文。

var orgUnits = _context.Organizations.FromSqlInterpolated($"SELECT * FROM [{orgForDBName.DbCatalog}].dbo.OrgUnits WHERE OrgId = {devices.OrgId}").ToList();

        var orgUnits = _context.Organizations.FromSqlRaw("SELECT * FROM [{0}].dbo.OrgUnits WHERE OrgId = {1}", orgForDBName.DbCatalog, devices.OrgId).ToList();

我把这个测试字符串放在一起,它看起来像是一个很好的sql,在sql management studio中运行时执行得很好:

string test = $"SELECT * FROM [{devices.Organizations.DbCatalog}].dbo.OrgUnits WHERE OrgId = {devices.OrgId}";

为什么sql查询可以用我的“test”字符串正常运行,但不能用fromsql方法执行它?我经常会遇到这样的错误:
sqlexception:对象名'@p0.dbo.orgunits'无效。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题