如何从linq查询中返回{ModuleName = Admin}?

Xai*_*oft 2 c# linq-to-sql

我试图从linq查询中获取字符串值"Admin",但是当我这样做时:

string oldModule = dc.Modules
                             .Where(x => x.Id == um.ModuleId)
                             .Select(s => new {s.ModuleName})
                             .FirstOrDefault().ToString();
Run Code Online (Sandbox Code Playgroud)

它在oldModule变量中返回{ModuleName = Admin},而不仅仅是Admin.

Jon*_*eet 9

那是因为你在投影中引入了一个匿名类型.试试这个:

string oldModule = dc.Modules
                     .Where(x => x.Id == um.ModuleId)
                     .Select(s => s.ModuleName)
                     .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

我也删除了ToString调用,NullReferenceException如果该Where子句没有匹配任何内容,则会抛出一个调用.