У меня есть проект asp net mvc.
Моя ситуация: две таблицы с одним похожим столбцом, и мне нужно отобразить первую таблицу и изменить одно значение из первой таблицы на связанное значение из второй таблицы.
Я пыталсячтобы сделать это через EF Eager Загрузка, но у меня есть ошибка
SqlException: invalid column name "ReqLpu_Id".
Я знаю, что я могу сделать выбор соединения для одной модели, но я не хочу понимать EF Eager Загрузка.Аналогичный столбец STATUS
в модели ReqLpu и Id
в модели ReqStatusMo
Основная модель:
public class ReqLpu
{
[Key]
public int IdLpu { get; set; }
public string COD { get; set; }
public string M_NAMES { get; set; }
public string TEL { get; set; }
public string FAX { get; set; }
public string E_MAIL { get; set; }
public int? STATUS { get; set; }
public virtual ICollection<ReqStatusMO> ReqStatusMO { get; set; }
}
Вторая модель:
public class ReqStatusMO
{
[Key]
public int IdStat { get; set; }
public string Name { get; set; }
ReqLpu ReqLpu { get; set; }
}
Контроллер:
lpuv = wk.ReqLpus.Include(p => p.ReqStatusMO).ToList();
return View(lpuv);
Вид:
@model IEnumerable<LpuList.Models.ReqLpu>
...
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.M_NAMES)
</th>
...
</tr>
@foreach (var item in Model)
{
<tr>
@Html.HiddenFor(modelItem => item.Id)
<td>
@Html.DisplayFor(modelItem => item.M_NAMES)
</td>
...
<td>
@Html.DisplayFor(modelItem => item.ReqStatusMO.Select(x=>x.Name))
</td>
<td>
...
Подшивка модели:
public class WorksContext :DbContext
{
public DbSet<ReqLpu> ReqLpus { get; set; }
public DbSet<ReqStatusMO> ReqStatusMOs { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ReqLpu>().ToTable("ReqLpu");
modelBuilder.Entity<ReqStatusMO>().ToTable("ReqStatusMO");
modelBuilder.Entity<ReqStatusMO>().HasRequired(x => x.ReqLpu).WithMany(x => x.ReqStatusMO).HasForeignKey(x => x.STATUS);
}