Asa*_*sad 2 c# linq linq-to-sql
在这两个语句中,我试图获取具有变量中指定名称的Category的ID;
两者都很好.有什么不同,哪个更好?
string name = "Progreammers";
var categoryID = from c in DataContext.Categories
where c.Name == name
select c.CategoryID;
var categoryID =
DataContext.Categories.Single(c => c.Name == name).CategoryID;
Run Code Online (Sandbox Code Playgroud)
编辑:表中的每个CategoryID(字段)只有一个名称(字段).
Jus*_*ner 12
这两个语句执行不同的功能.
第一个可以返回多个记录.
第二个只返回一个CategoryID.如果找不到至少一条记录,它也会抛出异常.
以下查询将等同于您的第一个语句:
var categoryID = DataContext.Categories.Where(c => c.Name == name).CategoryID;
Run Code Online (Sandbox Code Playgroud)
以下是与第二个语句等效的查询语法:
var categoryID = (from c in DataContext.Categories
where c.Name == name
select c.CategoryID).Single();
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,一致性可能是最重要的(性能应该彼此相同,因为它们都以相同的方式执行).如果您使用查询语法,请坚持使用它.如果您开始使用lambda表达式,请尽可能多地使用它们.
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |