1

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

Documents实体中,我有 columnId和 column UserId。如何编写我的 LINQ 以仅获取这两个值?

附言

我的方法应该使用什么类型?也许object吧,但我想要更具体的东西。

4

2 回答 2

2

基于 Olivers 的回答,如果你想从方法中返回它,你可以使用动态:

    public dynamic ReturnSomeData()
    {
        return context.Documents.Select(d => new
        {
            Id = d.Id,
            UserId = d.UserId
        });
    }

您必须记住,您以编译器检查为代价来换取灵活性。

于 2013-06-14T07:43:58.853 回答
1

这应该可以满足您的需要,如果您想将其放入一个方法中,您应该创建一个包含您需要的所有信息的类型。

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
        });
}
于 2013-06-14T07:42:10.627 回答