簡體   English   中英

Linq查詢未從數據庫字段返回值

[英]Linq Query not returning value from database field

我真的不知道為什么這不是我期望的查詢方式,但是我對編程並不陌生,但是在我看來卻是正確的。

我正在使用this.Context.User.Identity.Name返回登錄的用戶,但是它返回的是電子郵件而不是用戶名。 這是上下文中的腳本。

@Html.ActionLink("My Account", "Users", new { id = this.Context.User.Identity.Name  },     false) @: | @Html.ActionLink("Logout", "Logout", "Users") 

從這個我希望URL看起來像網站/用戶/用戶名,因此想要獲得用戶名而不是電子郵件。

查詢:

Project1.Models.DBContext db = new Project1.Models.DBContext();
//save u.Username in var user where u.Email == user_logged_in_email

var user = from u in db.Users
           where u.Email == this.Context.User.Identity.Name
           select u.Username;

我希望linq查詢能夠找到包含電子郵件地址的行,然后拉出Username並將其存儲在var user中。 它真正等於的是System.Data.Entity.Infrastructure.DbQuery

您需要枚舉該查詢以獲取用戶:

var user = (from u in db.Users
           where u.Email == this.Context.User.Identity.Name
           select u.Username).SingleOrDefault();
//SingleOrDefault will return null if no user is found, so you need to check for that before operating upon the user object.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM