我在模型中使用數據庫時遇到了一些問題。我懷疑在Model中使用數據庫查詢不是個好主意,但我不知道如何更好地實現它。我希望你能給我一些建議。Enitity Framework模型中的數據庫查詢 - 變量等於零
代碼:
讓我們假設我有一些應用程序analize足球比分。我有一個存儲有關足球運動員的信息有些EF型號:
public class Player
{
[...]
public virtual ICollection<Goal> HisGoals { get; set; }
public float Efficiency
{
get
{
using(var db = new ScoresContext())
{
var allGoalsInSeason = db.Goals.Count();
return HisGoals.Count/allGoalsInSeason;
}
}
}
}
問題:
所以情況是:我想要有所謂的「效率」,將返回兩個商在我的模型中的變量變量。其中之一包含從數據庫實時獲取的數據。 目前這段代碼不起作用。 「效率」等於0.我嘗試使用調試器,所有數據都是正確的,並且應該返回其他值。
怎麼了?爲什麼它總是返回零?
我的懷疑:
也許我錯了,我不擅長C#,但我認爲,效率是始終爲零的原因,是因爲我在用它的數據庫,它是某種異步。當我調用這個變量時,它首先返回零,然後調用數據庫。
在你的return語句行上放上一個斷點,然後讓我們知道db.Goals.Count()的值,HisGoals中是否還有任何值? –
@SimonPrice正如我在我的問題所說,我試圖檢查調試器中的變量。 HisGoals.Count等於4,所有目標 - 11. – Piotrek
我沒有看到你說你從哪裏得到你的價值。而不是把總和放在返回語句裏,把它放到一個變量中,就像'var result = HisGoals.Count/allGoalsInSeason;'你會得到一個有效的結果嗎? –