实体框架向数据集添加字段

时间:2014-05-11 03:18:07

标签: entity-framework

是否可以仅选择要返回的特定字段。在这些示例中,所有Tickets包括Username。 LazyLoading已禁用。

[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string Username { get; set; }
    public DateTime? LastOnline { get; set; }

    public Tickets Tickets { get; set; }
}

代码

var whereQuery= "x => true";
_uow.Users.DbSet.Include("Tickets").Where(whereQuery).OnlyTickets.IncludeUsername();
//or
var whereQuery= "x => true";
_uow.Tickets.DbSet.Include("UserProfile").Where(whereQuery).OnlyTickets.IncludeUsername();

1 个答案:

答案 0 :(得分:2)

这个怎么样:

_uow.Users.DbSet.Where(whereQuery).Select(u => new {Tickets = u.Tickets, Username = u.UserName});

你可以在那里添加Include(item => item.Tickets)以加载热门门票prperty,但这不是强制性的。如果您不想使用匿名类型,可以使用Tuple:

_uow.Users.DbSet.Where(whereQuery).Select(u => new Tuple<List<Ticket>,string>(u.Tickets, u.UserName));