Обновить таблицу мостов при изменении класса в Entity FrameworkC#

Место общения программистов C#
Ответить
Anonymous
 Обновить таблицу мостов при изменении класса в Entity Framework

Сообщение Anonymous »

Кажется, мне никогда не удается обновить таблицу мостов, когда я покидаю Entity Framework для автоматического управления сопоставлением.
Классы:
public class Tool
{
public Guid Id { get; set; }
public string Name { get; set; } = string.Empty;
public List TargetTypes { get; } = [];
}

public class TargetType
{
public Guid Id { get; set; }
public string Name { get; set; } = string.Empty;
public List Tools { get; } = [];
}

Когда я перехожу на страницу редактирования/инструмента, я хочу иметь возможность изменять целевые типы, с которыми связан инструмент.
Кажется, что при отладке код работает нормально — я загружаю все целевые типы в представление, пользователь может их выбрать и нажать кнопку сохранения. Однако в таблицу мостов ничего не добавляется. В этой статье Entity Framework сообщает, что все это обрабатывается автоматически, поэтому мне не хочется создавать собственный класс.
Почему моя таблица мостов не обновляется в моей базе данных?< /p>
Свойства:
[BindProperty]
public Tool Tool { get; set; }

[BindProperty]
public List Targets { get; set; } = new List();
[BindProperty]
public List SelectedTargetTypes { get; set; } = new List();
[BindProperty]
public List TargetTypesList { get; set; } = new List();

OnPost метод:
public async Task OnPostAsync()
{
// we want to update the tool options here
if (!ModelState.IsValid)
{
return Page();
}

// Handle the target types
foreach (var type in SelectedTargetTypes)
{
var target = await _context.TargetTypes.FindAsync(type);

if (target != null)
{
Tool.TargetTypes.Add(target);
}
}

_context.Attach(Tool).State = EntityState.Modified;

try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!ToolExists(Tool.Id))
{
return NotFound();
}
else
{
throw;
}
}

return RedirectToPage("./Index");
}

.cshtml на мой взгляд:



Tool Settings























Allowed Targets
@foreach (var targetType in Model.TargetTypesList)
{


@targetType.Text

}








Подробнее здесь: https://stackoverflow.com/questions/791 ... -framework
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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