首先从实体框架数据库中的查询中获取数据

本文关键字:查询 获取 数据 数据库 实体 框架 | 更新日期: 2023-09-27 18:16:05

var us = from user in conteks.Tabel_User
                 where user.user_id == userID
                 select user

如果查询给出 1 行的结果,如何从每列获取数据?

首先从实体框架数据库中的查询中获取数据

如果您确定查询将只为您提供一行结果,请使用 .Single 方法。如果您的查询导致零个或多个结果,它将抛出一个 eror。

var us = from user in conteks.Tabel_User
         where user.user_id == userID
         select user
var singleUser = us.Single();
//get name, ssn, etc
var name = singleUser.Name;
var ssn = singleUser.Ssn;

我将解释这里提到的每种方法。

  • Single() .它将为您提供单行查询中的行。如果您的查询导致零行或多行,则会引发错误。
  • SingleOrDefault() .它将为您提供单行查询中的行。如果查询导致零行,它将为你提供默认类型,null引用类型。如果您的查询导致多行,它将引发错误。
  • First() .如果您的查询,它会给你第一行,当然如果你把它应用于单行查询,那么它将返回该行。如果您的查询导致零行,那么它会给你一个错误。
  • FirstOrDefault() .最安全的方法。如果您的查询返回行,它将为您提供第一行,如果您的查询返回零行,则为您提供类型的默认值(null引用类型(。

像这样获取

var user = us.SingleOrDeafult();
if(user != null)
{
    var fn = user.firstName;
}
var us= (from user in conteks.Tabel_User
                 where user.user_id == userID
                 select user).FirstOrDefault();

将为您提供用户对象,然后您可以按us.<columnName>选择每一列,如果存在未找到 serarch 条件的记录的可能性,则可能需要在访问对象属性之前进行 null 检查。

您可以尝试如下所示。

注意:如果您考虑性能,那么FirstOrDefault()方法是最好的。

var us = from user in conteks.Tabel_User
                 where user.user_id == userID
                 select user
var userObject = us.FirstOrDefault();

然后:

var firsName = userObject.FirstName;
var lastName = userObject.LastName;

.....