我有一个名为 Project 的类/表,包含100个属性。我的应用程序的第一步是从包含所有可用项目的网格中选择一个项目。 显然,仅为该网格加载所有完整项目太多了。
如果没有ORM,我会从包含五列的项目中创建一个 SQL-View 。
使用EntityFramework加载此类 ProjectLite 对象时的常用方法是什么?
答案 0 :(得分:1)
您可以创建自己的类并将结果投影到那里。例如:
public class LargeClass
{
public string Thing1 { get; set; }
public string Thing2 { get; set; }
//snip
public string Thing100 { get; set; }
}
public class SmallClass
{
public string Thing1 { get; set; }
public string Thing50 { get; set; }
public string Thing100 { get; set; }
}
现在这样做:
var results = context.LargeClasses
.Select(x => new SmallClass
{
Thing1 = x.Thing1,
Thing1 = x.Thing50,
Thing1 = x.Thing100
});
这将运行与此等效的SQL:
SELECT
[c].[Thing1] AS [Thing1],
[c].[Thing50] AS [Thing50],
[c].[Thing100] AS [Thing100]
FROM [dbo].[LargeClasses] AS [c]