Linq-检索字符串中的单个值



我使用Asp.net 3.5和EF 4。

我需要在数据库中找到一个特定的行,并在标签上显示一个字符串形式的值。

在我使用这段代码的时候,它正在工作,所以我找到一个Object并读取它的属性。

 var myAuthor = (from at in context.CmsAuthors
             where at.AuthorId == myRow.AuthorId
             select at).Single();   
 myAuthorNameLabel.Text = myAuthor.LastName;

我想知道:

  • 如果在Linq中还有其他语法可以达到相同的结果
  • 如何使用Lamba
  • 你建议我采取哪种方法

以下是方法语法(使用lambdas)

myAuthorNameLabel.Text = context.CmsAuthors
                           .Where(at => at.AuthorId == myRow.AuthorId)
                           .Select(at => at.LastName) 
                           .SingleOrDefault() ?? string.Empty;

您可以使用:

 var myAuthorName = 
(from at in context.CmsAuthors where at.AuthorId == myRow.AuthorId select at).Single().Select(a => a.LastName);

实际上这会更好:

var myAuthorName = 
(from at in context.CmsAuthors where at.AuthorId == myRow.AuthorId select at).Select(a => a.LastName).Single();

更新

如何与匿名类型一起使用的示例:

var myAuthorNames = 
    (from at in context.CmsAuthors where at.AuthorId == myRow.AuthorId select at).Select( a => new {a.LastName, a.FirstName}).Single();

相关内容

  • 没有找到相关文章

最新更新