在某些背景下,我有一个保存组织的数据库,该表有一个字段告诉我一个数据库名称。该数据库名称用于查找其他数据库中存在的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'无效。
暂无答案!
目前还没有任何答案,快来回答吧!