我知道这是非常标准的东西,但是知道解决方案让我感到厌烦。我有实体Documents
。在我的服务中,我可以调用DocumentsRepository.All()
,然后只使用我需要的但我不想携带所有不需要的数据。我想我必须使用匿名对象来实现这一点,但确切的实现逃脱了我。
在Documents
实体中,我有列Id
和列UserId
。如何编写LINQ才能获得这两个值?
P.S
我的方法应该使用什么类型?也许object
但我希望更具体一些。
答案 0 :(得分:2)
基于olivers答案,如果你想从方法中返回,你可以使用dynamic:
public dynamic ReturnSomeData()
{
return context.Documents.Select(d => new
{
Id = d.Id,
UserId = d.UserId
});
}
您必须记住,您需要交换编译器检查的灵活性。
答案 1 :(得分: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
});
}