c# - Linq中的 "SELECT SYSTEM_USER"相当于什么

标签 c# sql-server linq tsql linq-to-sql

我可以使用 SYSTEM_USER 值获取当前登录的 SQL Server 用户的身份,但是有没有办法通过 执行此操作?不知何故?我正在寻找类似下面的内容:

var query = from u in dataContext.Users
            where u.domainname == dataContext.system_user
            select u.fullname;

如果非域用户通过 VPN 进行身份验证,使用类似 Environment.UserName 的东西将不起作用,并且不希望通过单独的语句进行查询,因为我只想使用一个语句获取数据。

最佳答案

调用系统函数可以通过在数据库中创建新函数来完成,这些函数可以进一步映射到 ORM 中。这取决于有关映射用户数据库功能的 ORM 功能。

CREATE FUNCTION dbo.fnSystemUser () returns varchar(120)
AS
BEGIN
    return (select SYSTEM_USER)
END

LINQ2SQL 和 EF 将为以下 LINQ 查询创建单个 SQL 语句。

var query = from u in dataContext.Users
            where u.domainname == dataContext.fnSystemUser()
            select u.fullname;

关于c# - Linq中的 "SELECT SYSTEM_USER"相当于什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552850/

相关文章:

c# - 如何用C#登录vbulletin论坛?

c# - 清除应用程序启动时的所有 session

c# - 在 SQL Server 中使用 GO 关键字

c# - 在关联角色的文档中搜索

sql-server - Order By 使用参数 varchar(100)

c# - 如果未从 DistinctBy 中找到重复项,则返回 0

c# - 从更新面板回发后调用 javascript 代码

c# - 是否可以在不指定数据库的情况下连接到 SQL Server?

c# - LINQ group by 表达式语法

c# - Mysql Linq 已经有一个与此连接关联的打开的 DataReader,必须先将其关闭