c# - 通过 ID 获取对象,例如 Entity Framework 中的 SQL WHERE 谓词

标签 c# .net entity-framework linq ef-code-first

我看过 Entity Framework,通过 ID 获取对象。

我无法让它工作。

我特别想要

WHERE [Extent1].[CatId] = 1

因为我不想像在

中那样返回过滤它的所有内容
using (ApplicationContext db = new ApplicationContext())  
{
    IQueryable<Project> projects = db.Projects; // Get all
    var p =  (from i in db.Projects where i.Id == ProjectID select i);
    Console.WriteLine("Project #  {0} added and Named:{1} ", ProjectID, p.First().Name);
    Assert.IsNotNull(projects.First().Name);
}

所以我在 SQL 术语中寻找的是

SELECT *   
FROM Projects 
WHERE id = 1

希望这是有道理的。

最佳答案

您应该能够使用 LINQ 流畅的语法:

var project = db.Projects.SingleOrDefault(i => i.Id == ProjectId);

Great LINQ reference and examples

关于c# - 通过 ID 获取对象,例如 Entity Framework 中的 SQL WHERE 谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31075201/

相关文章:

c# - Angularjs 和 WebAPI Put 方法参数始终为空

c# - 如何在 StackPanel 或 ListView 中叠加项目?

.net - 在 WPF/Silverlight ListBox 中的项目之间添加空格,第一个上方或最后一个下方没有空格

c# - MVC4 : Compilation Error The type 'System.Data.Objects.DataClasses.EntityObject' is defined in an assembly that is not referenced

c# - 是否可以在 EntityCollection<T> 上实现 RemoveAll()?

c# - 同一实体的多对多集合,具有双向关系

c# - asp.net 基本身份验证

c# - Xamarin 表格 : ContentPages in TabbedPage

.net - tableLayoutPanel 列宽

c# - 在 C# 中获取类的名称作为字符串