使用Repository模式和LINQ2Entities仅从实体获取一些属性

本文关键字:获取 实体 属性 Repository 模式 LINQ2Entities 使用 | 更新日期: 2023-09-27 18:18:26

我知道这是很标准的东西,但我知道解决方案。我有实体Documents。在我的服务中,我可以调用DocumentsRepository.All(),然后只使用我需要的数据,但我不想携带所有不需要的数据。我想我必须使用匿名对象来实现这一点,但确切的实现逃脱了我。

Documents实体中,我有列Id和列UserId。我怎么写我的LINQ只得到这两个值?

p。S

我应该用什么类型的方法呢?也许是object,但我想要更具体的

使用Repository模式和LINQ2Entities仅从实体获取一些属性

基于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
        });
}