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