如何將IEnumerable
與NewUnitPhaseStatus
作爲枚舉返回?將int轉換爲從sql查詢中枚舉C#實體框架
在SQL中,「NewUnitPhaseStatus」值存儲爲int。如果我只是返回查詢,那麼當我嘗試提取該值時,它只是表示DBcontext已被處置。但是,如果我嘗試將查詢結果轉換爲列表,則說明int不能轉換爲類型NewUnitPhaseStatus(枚舉類型)。
public IEnumerable<UnitPhaseLog> GetAllForUnitPhase(long unitPhaseId)
{
using (var db = new DbContext(_connStringKey))
{
var querys = from s in db.UnitPhaseLogs
where s.UnitPhaseId == unitPhaseId
select s;
return querys;
}
}
若用foreach語句到每一行轉換成一個枚舉,他們得到一個錯誤,因爲VAR查詢類UnitPhaseLog與NewUnitPhaseStatus等於枚舉。
錯誤消息:
如果一個嘗試的結果轉換到一個列表。
'UnitPhaseLog'上的'NewUnitPhaseStatus'屬性無法設置爲'System.Int64'值。您必須將此屬性設置爲「Core.UnitPhaseStatus」類型的非空值。
如果試圖向剛剛返回查詢結果本身:
的操作,因爲的DbContext已經佈置無法完成。
代碼:
public enum UnitPhaseStatus
{
[Display(Name = "No Status")]
NoStatus,
[Display(Name = "Not Ready")]
NotReady,
[Display(Name = "Materials Needed")]
MaterialsNeeded,
[Display(Name = "Ready For Work")]
ReadyForWork,
[Display(Name = "Work In Progress")]
WorkInProgress,
[Display(Name = "Ready")]
ReadyForQc,
[Display(Name = "Approved")]
Approved,
[Display(Name = "Rejected")]
Rejected,
}
你在說這句話嗎? 'UnitPhaseStatus UnitPhaseStatus = query.NewUnitPhaseStatus;' – DigiFriend
因此在SQL中,該值存儲爲int。我試圖將它作爲class的枚舉返回UnitPhaseStatus – Ophiucus
請顯示定義UnitPhaseStatus的代碼。 您的枚舉值應與SQL定義匹配。 – Bestter