c#-Linq中的“ SELECT SYSTEM_USER”等效

我可以使用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;
上一篇:ADO.NET SQL Server性能:多个结果集与多个命令执行


下一篇:SQL Server 2000交叉选项卡多个表