c# - 如何从不在默认 DBO 架构中的 SQL Server 数据库表中读取数据

标签 c# sql-server asp.net-mvc dapper

我正在构建一个使用 SQL Server 作为我的数据库的 .NET MVC 4 应用程序,我使用 Dapper 和 Dapper SimpleCRUD 进行数据库操作。在我的数据库中,我在默认 dbo 模式中有表,在其他模式中也有表,例如 product.clients 而不是 dbo.clients。我在 SQL Server 上创建了一个单独的登录名,该登录名映射到数据库上的一个单独的用户帐户(谁是产品架构的所有者,默认为产品架构)。但是使用此凭据连接到数据库会出现 System.Data.SqlClient.SqlException 之类的异常:对象名称“客户端”无效。现在,我搜索了又搜索,但找不到如何在 web.config 中构造正确的连接字符串元素,以便我可以从默认 dbo 以外的模式读取数据。我该怎么做?

最佳答案

您可以在查询中明确指定架构名称

SELECT Id,ClientName FROM product.clients

只要 sql 用户有权访问架构,它就应该可以工作。

您可以根据需要连接来自 2 个 schama 的表。

 SELECT C.Id,C.ClientName FROM product.clients C WITH (NOLOCK) 
 INNER JOIN dbo.UserAccount U WITH(NOLOCK) 
                         ON U.UserId=C.CreatedById

关于c# - 如何从不在默认 DBO 架构中的 SQL Server 数据库表中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38490775/

相关文章:

sql - 查询在同一个表中用名称替换 ID?

c# - TagHelper 指定有效属性

c# - List<T>().Count 线程安全吗?

c# - 主键的下一个值

sql-server - 避免 SQL Server GROUP BY 中不必要的排序?

c# - 使用 EF4 "Code First"和存储库进行单元测试

asp.net-mvc - HttpFileCollectionBase : Mocking Count-Property

c# - 从 HWND 到控制

c# - WCF 层

.net - 使用 SQLBulkCopy - SQL Server 2016 中的表比 SQL Server 2014 中的表大得多