Использую EF. У меня есть класс
public class Remont
{
[Key]
[ForeignKey("KardOf")]
public int RemontId { get; set; }
[Display(Name = "Диагностика", Prompt = "Предположительно что сломалось")]
public List<Detal> Diagnost { get; set; }
[Required]
[Display(Name = "Мастер", Prompt = "Кто выполнял ремонт")]
public Master Master { get; set; }
public virtual Kard KardOf { get; set; }
}
и второй класс
public class Detal//Деталь
{
public int DetalId { get; set; }
[Required]
[Display(Name = "Деталь", Prompt = "Тип детали")]
public string Name { get; set; }
public List<Remont> Remonts { get; set; }
}
Когда выполняю пошаговую отладку, то данные все заполняются в контексте подключения в нужных сущностях (локально). Сохраняю. Но при чтении в другом методе БД, в таблице Remont есть указание на таблицу Kard, но указания в колонке Diagnost и Master имеют значение null. Почему? Что не так я делал и каких не хватает данных для полного добавления сущностей в БД, включая вложенные сущности?
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Diagnostic(string[] detail)
{
string teh = Request.Form["teh"];
string kardId = Request.Form["kardId"];
string master = Request.Form["master"];
if ((teh != null) & (kardId != null) & (master != null))
{
ViewBag.teh = teh;
ViewBag.kardId = kardId;
Kard kard = db.Kards.Where(x => x.KardId.ToString() == kardId).FirstOrDefault();
Master _master = db.Masters.Where(x => x.LastName == master).FirstOrDefault();
if ((kard != null)&(_master != null))
{
Remont rem = new Remont();
rem.Diagnost = new List<Detal>();
//kard.Remont.
foreach (var diag in detail)
{
Detal d = db.Detals.Where(x => x.DetalId.ToString() == diag).FirstOrDefault();
if (d != null)
{
rem.Diagnost.Add(d);
if (d.Remonts == null)
d.Remonts = new List<Remont>();
d.Remonts.Add(rem);
}
}
kard.Remont = rem;
kard.Remont.Master = _master;
_master.RemontOf = new List<Remont>();
_master.RemontOf.Add(kard.Remont);
rem.KardOf = kard;
db.Remonts.Add(kard.Remont);
int i=db.SaveChanges();
return RedirectToAction("Index", "Remont", new { teh = teh});
}
}
return RedirectToAction("Index", "Work");
}
public ActionResult Result()
{
string teh = Request.QueryString["teh"];
string kardId = Request.QueryString["kardId"];
if ((teh != null) & (kardId != null))
{
ViewBag.Title = "Результат ремонта";
ViewBag.teh = teh;
ViewBag.kardId = kardId;
Remont result = db.Remonts.Where(x => x.KardOf.KardId.ToString() == kardId).FirstOrDefault();
ViewBag.master_lastname = result.Master.LastName;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Можно ли как-либо сделать так, чтобы метод Split делил строку, когда встречает точку, но игнорировал, например "Mr"? Пример: Строка: "Mr
Нужно сделать простенький логин в систему через ftpРеализация примерно такая: Подключение к серверу > Поиск директории из textbox1 (название...
Просле добавления serviceAuthorization nettcp binding не работает