IEnumerable
をNewUnitPhaseStatus
と返す方法は列挙型ですか?SQLクエリーから列挙するintをキャストするC#エンティティフレームワーク
SQLでは、値 "NewUnitPhaseStatus"はintとして格納されます。クエリを返すだけで、値を抽出しようとすると、DBcontextが破棄されたというメッセージが表示されます。しかし、クエリの結果をリストに変換しようとすると、intはNewUnitPhaseStatus(enum型)に型変換できないというメッセージが表示されます。
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;
}
}
1がenumに各行を変換するために、foreach文を使用している場合のvarクエリが列挙型に等しいNewUnitPhaseStatusでクラスUnitPhaseLogであるため、彼らはエラーが発生します。
エラーメッセージ:
1は、リストに結果を変換しようとした場合。
'UnitPhaseLog'の 'NewUnitPhaseStatus'プロパティを 'System.Int64'値に設定できませんでした。このプロパティーを 'Core.UnitPhaseStatus'タイプの非ヌル値に設定する必要があります。
1だけでクエリを返すようにしようとすると自分自身を結果:
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として格納されます。私はクラスの列挙型としてそれを返そうとしていますUnitPhaseStatus – Ophiucus
UnitPhaseStatusを定義したコードを表示してください。 enum値はSQL定義と一致する必要があります。 – Bestter