- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 LINQ 和 SQL 查询非常陌生,我已经在互联网上搜索了大约 2 个小时,现在试图找到我的问题的答案,这就是我在这里发帖的原因。
我正在尝试使用我知道其值的用户电子邮件地址在 LINQ 查询中获取用户的名字和姓氏。
一个例子是:
using (userEntities db = new userEntities())
{
var query = from o db.Users
where o.email == userEmail
select o;
if (query.SingleOrDefault() != null)
{
...
}
}
这仅选择电子邮件地址,那么我如何使用该行并获取名字和姓氏?
提前谢谢您。
最佳答案
您有一个 db 对象,它有一个名为 Users 的序列,其中序列中的每个元素都是一个 User,该 User 具有名为 email 的属性。
显然每个用户还有另外两个属性:firstName 和lastName。
在 linq 中,每当您有一系列“thingies”并且您只需要与某个谓词匹配的“thingies”时,您就可以使用函数Where,就像您所做的那样。
如果您有一系列“thingie”,并且对于每个“thingie”,您希望基于原始“thingie”创建一个“其他事物”,则可以使用“选择”功能。将一个输入元素转换为一个输出元素在 Linq 中称为投影。使用 Select 功能,您可以将输入序列的每个元素投影(转换)为输出序列的一个元素
因此,如果您想使用您的事物的名字和姓氏创建一个“其他事物”,请执行以下操作:
class UserName
{
public string firstName {get; set;}
public string lastName {get; set;
}
var result = db.Users
.Where(user => user.email == useremail)
.Select(user => new UserName()
{
FirstName = user.FirstName,
LastName = user.LastName,
});
我获取与 userEmail 匹配的每个用户,并创建一个 UserName 类的新对象,其中包含每个用户的名字和姓氏。
上面使用的方法意味着对于要在 Select 语句中使用的每个投影,您都必须定义一个类。这是相当麻烦的,特别是如果您只想在非常有限的空间中使用语句的结果,例如仅在创建新对象的过程中。
如果您不必将查询结果传递给其他函数,而只需要在该函数中使用它(更准确地说:不需要形式参数),则不必声明 UserName 类。您可以使用匿名类型。匿名类型可以进行选择,而无需定义您要投影到的类型:
var matchingUserNames = db.Users
.Where(user => user.email == useremail)
.Select(user => new
{
FirstName = user.FirstName,
LastName = user.LastName,
});
foreach (var matchingUserName in matchingUserNames)
{
Console.WriteLine(matchingUserName.FirstName + ' '
+ matchingUserName.LastName);
}
请注意,我省略了类的名称。所以你不能将结果传递给具有类型名称的东西。事实上,您现在唯一关心的结果是它是一个对象序列,其中每个对象都有两个属性:FirstName 和 LastName。 FirstName 与 user.FirstName 具有相同的类型; LastName 与 use.LastName 具有相同的类型
对于匿名类型,请参阅 the joy of anonymous types
另一篇帮助我理解 linq 的文章是 The standard Linq operators
关于c# - (C# LINQ) 使用电子邮件选择名字和姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40199894/
我有两个表,Table1和Table2。 Table1由格式为FullName的名称列('FirstName LastName')和唯一标识符(Key)组成。 Table2的列(Name)由这些名称组
我正在使用 ajax 实时搜索来选择名称和姓氏的串联与输入的文本匹配的所有用户,并且效果很好: $sql = "SELECT * FROM users WHERE concat(name,' ',su
我有一组采用 last, first 格式的名称 Name Pos Team Week.x Year.x GID.x h.a.x Oppt.x Week1Points DK.
我有一个函数,如果我有姓氏和名字,它应该返回 True。 此名称返回 False,但应返回 True。任何想法为什么?我希望能够在名称 A-Z、a-z、下划线和 0-9 中接受撇号。逗号前后可能有也可
我有一个 drupal 数据库,其中 node 表充满了配置文件。字段node.title是“Firstname Lastname”。我想分隔名称,以便 node.title = "Firstname
我正在使用 Django-Registration 包让用户创建帐户、对其进行身份验证并登录到我的 web 应用程序。 但是,用于创建帐户的表单/ View 不会要求用户提供名字/姓氏(这些字段是模型
我正在尝试使用云工具包获取用户的名字,但是以下代码未获取用户的名字,并且将firstNameFromFunction变量保留为空。有谁知道如何在iOS 10中实现这一目标? let container
运行应用程序时出现以下错误: 错误: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'pa
我想尝试在 Javascript 中检测一个人名字的不同部分,并将它们剪掉,以便我可以将它们传递给其他东西。 名称可以以任何格式出现——例如:- 维多利亚·米·莱恩小姐 Victoria C J Lo
这是我读过的教程中的查询 CREATE TABLE Employee ( id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, depa
所以我的程序有问题。如果我删除 in.nextLine,println 的名字和姓氏将一个接一个地打印,如果我有它,它不会在我的输出中打印名字,因为我认为它正在删除它。任何帮助将不胜感激。 impor
我专门使用omniauth来允许使用facebook/google/twitter登录到我的网站。 我存储名字,姓氏和电子邮件。但是,当我从oauth引发twitter auth哈希时,我仅在auth
我有一个看起来有点像这样的 df: name id John McNamara 3498 Jane Adams,
我有一个大数据集,我知道其中包含许多重复记录。基本上我有关于名字、姓氏、不同地址组成部分和出生日期的数据。 我认为最好的方法是使用姓名和出生日期,因为如果这些都匹配,则很可能是同一个人。可能有很多情况
我知道这是一件非常简单的事情,但我无法弄清楚我遗漏了什么或做错了什么。我认为这可能与 char 变量有关。这是我到目前为止所拥有的: #include #include "stdafx.h" #inc
我正在尝试使用以下代码获取电话联系人中所有可用联系人的详细信息。但面临重复值的小问题。 已编辑 实际代码开始:- private String refreshData() { Stri
我正在尝试实现对数据表的搜索。现在,我只能搜索名字、中间名和姓氏等。但是,在搜索全名(中间名和姓氏)时,搜索将不起作用。图像: success search for firtname/middle/l
Magento 是否可以通过客户的公司名称以及联系人姓名来查看/管理我们的客户,以便轻松找到他们?它用于 B2B,因此当电子邮件发出时,他们会提取客户的姓名,而不是更合适的公司名称。 这是全局设置吗?
我正在尝试实现对数据表的搜索。现在,我只能搜索名字、中间名和姓氏等。但是,在搜索全名(中间名和姓氏)时,搜索将不起作用。图像: success search for firtname/middle/l
我想检查用户输入的命令如: 添加人员关系人员(人员可以是例如 John 或“John Smith”) 示例:添加 John Smith 兄弟 Jack Smith... 我使用分隔符(空格)将字符串拆
我是一名优秀的程序员,十分优秀!