gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:14:57 24 4
gpt4 key购买 nike

我在数据库中有一个包含 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com