C# Npgsql+;EF不';不要接近读者
我尝试使用C# Npgsql+;EF不';不要接近读者,c#,postgresql,entity-framework-core,C#,Postgresql,Entity Framework Core,我尝试使用Npgsql将ASP.NETMVC5项目移植到PostgreSQL。但在这段代码中有一个错误: public ActionResult Index() { var roles = Roles.GetAll(); foreach (var role in roles) { if (!RoleManager.RoleExists(role)) { var identityRole = new Identity
Npgsql
将ASP.NETMVC5项目移植到PostgreSQL。但在这段代码中有一个错误:
public ActionResult Index()
{
var roles = Roles.GetAll();
foreach (var role in roles)
{
if (!RoleManager.RoleExists(role))
{
var identityRole = new IdentityRole() { Name = role };
var result = RoleManager.Create(identityRole);
// Check a creation result
if (!result.Succeeded)
{
Logger.Error(string.Format("Role '{0}' can't be created.", role));
}
}
}
//Detect root administrators count
var rootRole = RoleManager.FindByName(Roles.Root);
ViewData["userCount"] = rootRole.Users.Count;
List<KpiViewModel> kpies;
//Build KPIs
using (var db = new DatabaseContext())
{
var staffs = db.Staff.Where(s => s.TasksStaff.Count > 0);
kpies = new List<KpiViewModel>(staffs.Count());
foreach (var s in staffs)
{
var item = new KpiViewModel();
item.Id = s.Id;
item.Name = string.Format("{0} {1} {2}", s.LastName, s.FirstName, s.Patronymic);
var tasks = s.TasksStaff.Select(ts => ts.Task).Where(t => t.ClosedOn.HasValue);
float percent = 0f;
int total = tasks.Count();
if (total > 0)
{
var closed = (float)tasks.Where(t => t.EndDate.Date.CompareTo(t.ClosedOn.Value.Date) >= 0).Count();
percent = closed / total * 100;
item.Percent = percent;
}
var ks = db.Kpi.Where(k => k.Percent <= percent).OrderByDescending(k => k.Percent);
var kpi = ks.FirstOrDefault();
var tint = 0xEEEEEE; //Default color RGB 238, 238, 238
if (kpi != null)
{
tint = kpi.Tint;
}
item.Tint = '#' + tint.ToString("X6");
kpies.Add(item);
}
}
return View(kpies);
}
public ActionResult Index()
{
var roles=roles.GetAll();
foreach(角色中的var角色)
{
如果(!RoleManager.RoleExists(角色))
{
var identityRole=new identityRole(){Name=role};
var result=rolemager.Create(identityRole);
//检查创建结果
如果(!result.successed)
{
Logger.Error(string.Format(“无法创建角色“{0}”,角色));
}
}
}
//检测根管理员计数
var rootRole=rolemager.FindByName(Roles.Root);
ViewData[“userCount”]=rootRole.Users.Count;
列出关键绩效指标;
//建立KPI
使用(var db=new DatabaseContext())
{
var Staff=db.Staff.Where(s=>s.taskstaff.Count>0);
kpies=新列表(staff.Count());
foreach(员工中的var s)
{
var item=new KpiViewModel();
项目Id=项目Id;
item.Name=string.Format(“{0}{1}{2}”、s.LastName、s.FirstName、s.Patronymic);
var tasks=s.taskstaff.Select(ts=>ts.Task)。其中(t=>t.ClosedOn.HasValue);
浮动百分比=0f;
int total=tasks.Count();
如果(总数>0)
{
var closed=(float)tasks.Where(t=>t.EndDate.Date.CompareTo(t.ClosedOn.Value.Date)>=0.Count();
百分比=关闭/总计*100;
项目百分比=百分比;
}
var ks=db.Kpi.Where(k=>k.百分比k.百分比);
var kpi=ks.FirstOrDefault();
var tint=0xEEEEEE;//默认颜色RGB 238、238、238
如果(kpi!=null)
{
tint=kpi.tint;
}
item.Tint='#'+Tint.ToString(“X6”);
增加(项目);
}
}
返回视图(KPI);
}
错误:
操作已在进行。
位于var kpi=ks.FirstOrDefault()代码>代码字符串。
如何修复它?您的线路
var staffs = db.Staff.Where(s => s.TasksStaff.Count > 0);
正在运行。您可以添加一个ToList()
,使其回调数据,即
var staffs = db.Staff.Where(s => s.TasksStaff.Count > 0).ToList();
你的线路
var staffs = db.Staff.Where(s => s.TasksStaff.Count > 0);
正在运行。您可以添加一个ToList()
,使其回调数据,即
var staffs = db.Staff.Where(s => s.TasksStaff.Count > 0).ToList();
非常感谢。它帮助了我,谢谢你!它帮助了我。