asp.net-mvc - 如何从 EF 的表中只选择一些字段

标签 asp.net-mvc entity-framework asp.net-mvc-3 lambda entity-framework-4.1

我在数据库中有一个包含 9 列的表,如果需要,我希望能够仅加载其中的某些字段。

请问如何使用 Entity Framework 4 做到这一点?

例如我的表有这些字段:

ID, FirstName, LastName, FotherName, BirthDate, Mobile, Email

我希望能够只获取这些列:
ID, FirstName, LastName

我的项目是 ASP.NET MVC 3应用程序,与 SQLServer 2008 ExpressEF 4.1 .

最佳答案

假设您有一个具有此模型的表:

public class User{
    public int ID {get; set;}
    public string NickName {get; set;}
    public string FirstName {get; set;}
    public string LastName {get; set;}
    public string FotherName {get; set;}
    public DateTime BirthDate {get; set;}
    public string Mobile {get; set;}
    public string Email {get; set;}
    public string Password {get; set;}
}

现在,您只想获取 ID , FirstName , LastName , 和 FotherName .您可以通过 2 种方式进行操作;第一种方法是将它们作为 anonymous 获取。对象,看:
var user = entityContext.Users.Where(u => u.ID == id)
    .Select(u => new {
        ID = u.ID,
        FirstName = u.FirstName,
        LastName = u.LastName,
        FotherName = u.FotherName
    }).Single();

现在,您的返回值类型是 anonymous ,您可以使用它,例如:
var i = user.ID;
// or
var s = user.FirstName;

以另一种方式(例如,当您想将对象作为 模型 传递给 View 时),您可以定义一个新类,(即 UserViewModel ),并且当您选择对象,将其选择为 UserViewModel .看:
public class UserViewModel{
    public int ID {get; set;}
    public string NickName {get; set;}
    public string FirstName {get; set;}
    public string LastName {get; set;}
    public string FotherName {get; set;}
}

并在查询中,采取这个:
var user = entityContext.Users.Where(u => u.ID == id)
    .Select(u => new UserViewModel {
        ID = u.ID,
        FirstName = u.FirstName,
        LastName = u.LastName,
        FotherName = u.FotherName
    }).Single();

看那只是区别在于它们之间,在labda 表达式中,而不是u => new {}我们正在使用 u => new UserViewModel{} .祝你好运。

关于asp.net-mvc - 如何从 EF 的表中只选择一些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7356180/

相关文章:

javascript - 如何在 typescript 的 Controller 中添加 angularjs 服务

c# - 通过 EF 中的计算属性查询

entity-framework - Entity Framework 一对多关系代码优先

c# - Asp.Net MVC - 参数与模型值的绑定(bind)!

.net - 创建需要类型信息的 MVC3 ValueProviderFactories?

jquery - 使用 Jquery 提交表单,提交 Get 而不是 Post

.net - 插入行时 Entity Framework 和 MySQL 空引用异常

visual-studio-2010 - 在 Visual Studio 中使用 WebMatrix.Data 和 facebook 助手

javascript - 使用 pjax 提交表单

asp.net-mvc-3 - uploadify + asp.net-mvc3问题