Ich habe diesen Code und es wird angenommen, Coming up die entsprechenden Tabellen zu füllen, und es wird die erste Tabelle (Mu_Reports
) ein, aber die zweite Tabelle (MU_By_Machine
) kommt immer wieder nach oben blank-Code leer jedes Mal
using (var db = new ProductionContext())
{
var objct = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)db).ObjectContext;
objct.ExecuteStoreCommand("TRUNCATE TABLE [MU Report]");
objct.ExecuteStoreCommand("TRUNCATE TABLE [MU By Machine]");
db.SaveChanges();
var query = db.Production_Reports
.GroupBy(x => new { x.Date, x.Machine_Number, x.Shift })
.Select(x => new
{
Date = x.Key.Date,
Shift = x.Key.Shift,
MachineNum = x.Key.Machine_Number,
MU = x.Sum(i => i.Partial_MU_ * 100)
}).ToList();
foreach (var item in query)
{
var z = new MU_Report();
z.Date = System.Convert.ToDateTime(item.Date);
z.Shift = item.Shift;
z.Machine_Number = item.MachineNum;
z.MU = item.MU;
db.MU_Reports.Add(z);
db.SaveChanges();
}
var query2 = from b in db.MU_Reports
join downtime in db.Downtime_Reports on b.Shift equals downtime.Shift
where downtime.Downtime_Code.Equals("9185")
group downtime by new { b.Date, b.Shift, b.Machine_Number, b.MU } into g
select new
{
Date = g.Key.Date,
Shift = g.Key.Shift,
Machine = g.Key.Machine_Number,
MU = g.Key.MU,
No_Work_Hours = g.Sum(x => x.Total_DownTime)
};
foreach (var item in query2)
{
var y = new MU_By_Machine();
y.Date = item.Date;
y.Shift = item.Shift;
y.Machine_Number = item.Machine;
y.MU = item.MU;
y.MU_w_o_No_Work = (item.MU * 8)/(8 - item.No_Work_Hours);
db.MU_By_Machines.Add(y);
db.SaveChanges();
}
}
Füllung
Ich weiß nicht, ob es ist, weil ich nicht query
und query2
in der gleichen Taste gehen kann oder wenn ich nur etwas falsch mache. Kein Fehler tritt auf erscheint leer. Bitte beachte, dass ich neu in C# bin.
Ich habe dies getan, indem ich die 2 Abfragen in separate Methoden zerlegt und sie dann beim Drücken der Taste aufgerufen habe. Dann bin ich in der Lage, einen Debug-Punkt zu verwenden, um zu sehen, ob Sie Daten zurück zur foreach-Anweisung in query2 bekommen oder ob Sie woanders kaputt sind. – tCoe