Как выполнить CREATE для таблиц с внешним ключом в ASP.NET C#C#

Место общения программистов C#
Anonymous
Как выполнить CREATE для таблиц с внешним ключом в ASP.NET C#

Сообщение Anonymous »


{
"FacilityID":"18c9aebb-0874-4fc2-900e-48f6b192797f",
"FacilityRoomNumber":102,
"FacilityPurpose":"DSFDSF",
"LabTypeID":"bde03bf9-2fec-4d4c-bc00-e8fc605703a5",
"LabType":{
"LabTypeID":"bde03bf9-2fec-4d4c-bc00-e8fc605703a5",
"LabTypeName":"CT Scan",
"Facilities":[]
},
"LabResults":null
}


LabTypeПоле является обязательным.

Я создаю объект, у которого LabTypeID является внешним ключом. Я могу читать из таблицы, что, вероятно, означает, что все FK и таблицы установлены правильно, но я могу добавлять их в базу данных. Хотя поле LabType имеет значения, ошибка говорит, что оно является обязательным,
[HttpPost]
[ValidateAntiForgeryToken]
public async Task Create([Bind("FacilityRoomNumber,FacilityPurpose,LabTypeID")] Facility facility)
{
facility.FacilityID = Guid.NewGuid();

var labtype = await _context.LabTypes.FindAsync(facility.LabTypeID);
if (labtype != null)
{
facility.LabType = labtype;
_context.Entry(facility).State = EntityState.Modified; // ensure ef tracks the changes
}
else
{
ModelState.AddModelError(string.Empty, "the specified lab type does not exist.");
return View(facility);
}

if (ModelState.IsValid)
{
Console.WriteLine("valid context");
_context.Facilities.Add(facility);
await _context.SaveChangesAsync();
return RedirectToAction("index", "facilities");
}
else
{
string json = JsonConvert.SerializeObject(facility, new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
Console.WriteLine(json);
}
return View(facility);
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... et-c-sharp

Вернуться в «C#»