现在我有三个控制器。随机(父),菜单和名称(子)。
我在 RandomController 中有几种适用于数据库的方法,但我希望 Menu & Name 指定不同的数据库。但是,如果我从 Random 中删除数据库上下文声明,则会引发各种错误。
附带说明一下,Random 永远不会被单独访问,它的存在只是为了提供 Menu & Name 的代码
整个控制器并不是真正需要的,但这里有一些我必须给出想法的方法。所有的分贝。当我将 ComboContext 声明移动到子级时,语句会中断。
public class RandomController : Controller
{
publicCombosContext db = new CombosContext();
//
// GET: /Home/
public ActionResult Index()
{
var rows = db.Combos.OrderBy(a => a.Id).ToArray();
int arrLength = rows.Length;
Random ran = new Random();
Combo newCombo = new Combo
{
MainPrefix = rows[ran.Next(0, arrLength)].MainPrefix,
MainDescriptor = rows[ran.Next(0, arrLength)].MainDescriptor,
MainDish = rows[ran.Next(0, arrLength)].MainDish,
Connector = rows[ran.Next(0, arrLength)].Connector,
SecondaryDescriptor = rows[ran.Next(0, arrLength)].SecondaryDescriptor,
SecondaryDish = rows[ran.Next(0, arrLength)].SecondaryDish
};
return View(newCombo);
}
public ActionResult Create()
{
return View(new Combo());
}
[HttpPost]
public ActionResult Create(Combo model)
{
db.Combos.Add(model);
db.SaveChanges();
return RedirectToAction("Create");
}
public ActionResult Edit(int id)
{
Combo editMe = db.Combos.Find(id);
return View(editMe);
}
[HttpPost]
public ActionResult Edit(Combo editMe)
{
if (ModelState.IsValid)
{
db.Entry(editMe).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View(editMe);
}
}
}