我有兩個單獨的課程。登錄和用戶內容。我希望如果你輸入你的個人號碼,你應該“登錄”。然后你應該能夠獲取資料。
我將數字傳遞給 BankContent 方法。在那里我想從用戶那里得到名字,但是當我寫的時候我只會把這個訊息送到控制臺。Welcome! Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[System.String]所以我沒有得到用戶的名字。有誰知道為什么?
登錄類
public class Login : ILogin
{
private readonly UserContent _userContent;
private readonly ApplicationDbContext _db;
public Login(UserContent userContent, ApplicationDbContext db)
{
_userContent = userContent;
_db = db;
}
public void Enter()
{
Console.WriteLine("Enter your Social Number to login");
var number = Convert.ToInt32(Console.ReadLine());
var result = _db.Customers.Where(x => x.SocialNumber == number).Any();
if (_db == null)
{
Console.WriteLine($"No customer with {number} was found");
return;
}
if (result == true)
{
_userContent.BankContent(number);
}
else
{
Console.WriteLine($"No customer with {number} was found!");
}
}
}
使用 BankContent 方法的 UserContent
public class UserContent : IUserContent
{
private readonly ApplicationDbContext _db;
public UserContent(ApplicationDbContext db)
{
_db = db;
}
public void BankContent(int number)
{
var name = _db.Customers.Where(z => z.SocialNumber == number).Select(x => x.FirstName);
Console.WriteLine("Welcome! " name);
}
}
uj5u.com熱心網友回復:
該Select()方法在源序列的每個元素上呼叫提供的選擇器委托IEnumerable<T>,并回傳一個IEnumerable<U>包含每次呼叫輸出的新結果序列。
所以在你的情況下:
var name = _db.Customers.Where(z => z.SocialNumber == number).Select(x => x.FirstName).FirstOrDefault();
使用該FirstorDefault()方法將回傳序列的第一個元素,如果元素不存在,則回傳默認值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/414426.html
標籤:
上一篇:linqGroupBy并獲取first和lats記錄
下一篇:LinqJoin查詢回傳空資料集
