我正在构建一个使用 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/