使用Repository模式和LINQ2Entities仅从实体获取一些属性
本文关键字:获取 实体 属性 Repository 模式 LINQ2Entities 使用 | 更新日期: 2023-09-27 18:18:26
我知道这是很标准的东西,但我知道解决方案。我有实体Documents
。在我的服务中,我可以调用DocumentsRepository.All()
,然后只使用我需要的数据,但我不想携带所有不需要的数据。我想我必须使用匿名对象来实现这一点,但确切的实现逃脱了我。
在Documents
实体中,我有列Id
和列UserId
。我怎么写我的LINQ只得到这两个值?
p。S
我应该用什么类型的方法呢?也许是object
,但我想要更具体的
基于oliver的答案,如果你想从一个方法返回这个答案,你可以使用dynamic:
public dynamic ReturnSomeData()
{
return context.Documents.Select(d => new
{
Id = d.Id,
UserId = d.UserId
});
}
你必须记住,你用编译器检查来换取灵活性。
这应该是你需要的,如果你想把它放到一个方法中,你应该创建一个包含你需要的所有信息的类型。
var selectedItems = context.Documents.Select(d => new
{
Id = d.Id,
UserId = d.UserId
});
编辑
用于方法:
public class MyData
{
public int Id { get; set; }
public int UserId { get; set; }
}
public IEnumerable<MyData> GetMyDataFromDocuments()
{
return context.Documents.Select(d => new MyData
{
Id = d.Id,
UserId = d.UserId
});
}