Я программирую в MVC3, и у меня есть следующая модель:
public class L_CabecRegistoPedido
{
[Key]
public int Id { get; set; }
public int Numero { get; set; }
public int Ano { get; set; }
public int Utilizador { get; set; }
public String Cliente { get; set; }
public String NomeEmpresa { get; set; }
public String MarcaEmpresa { get; set; }
public int? Marca { get; set; }
public String Projecto { get; set; }
public String Responsavel { get; set; }
public String EmailResp { get; set; }
public String TelefoneResp { get; set; }
public String DepartamentoEmpresa { get; set; }
public int? Departamento { get; set; }
public DateTime DataRegisto { get; set; }
public int? EstadoPedido { get; set; }
public int? FasePedido { get; set; }
public DateTime DataEntregaRequisitada { get; set; }
public DateTime DataEntrega { get; set; }
public String Observacoes { get; set; }
public bool Transformacao { get; set; }
public int Versao { get; set; }
public List<L_LinhaRegistoPedido> Linhas { get; set; }
}
public class L_LinhaRegistoPedido
{
[Key]
public int Id { get; set; }
public int? IdCabec { get; set; } /* **Foreign Key to L_CabecRegistoPedido ** */
public int Utilizador { get; set; }
public String Artigo { get; set; }
public String CabDescricao { get; set; }
public String Descricao { get; set; } /* TODO: espaço neste campo*/
public Double Quantidade { get; set; }
public DateTime DataRegisto { get; set; }
public DateTime DataEntregaRequisitada { get; set; }
public DateTime DataEntrega { get; set; }
public int? EstadoLinhasPedido { get; set; }
public int? FaseLinhasPedido { get; set; }
public String Observacoes { get; set; }
public bool Transformacao { get; set; }
public L_CabecRegistoPedido CabecRegisto { get; set; }
public List<L_SubLinhaRegistoPedido> SubLinhas { get; set; }
}
Затем я использую DBContext следующим образом:
public class AppADO : DbContext
{
public AppADO(String ConnectionStringName)
: base(ConnectionStringName) { }
public DbSet<L_CabecRegistoPedido> L_CabecRegistoPedido { get; set; }
}
и на контроллере, когда я делаюSaveChanges () У меня есть этот код:
[HttpPost]
public ActionResult Create(FormCollection formCollection)
{
L_LinhaRegistoPedido linhaRegisto = new L_LinhaRegistoPedido();
try
{
if (ModelState.IsValid)
{
if (String.IsNullOrEmpty(formCollection["IDArtigo"])) linhaRegisto.Artigo = null; else linhaRegisto.Artigo = formCollection["IDArtigo"];
linhaRegisto.IdCabec = int.Parse(formCollection["IDRegistoPedido"]);
linhaRegisto.Quantidade = Double.Parse(formCollection["IDQuantidade"]);
linhaRegisto.CabDescricao = formCollection["IDCabDescricao"];
linhaRegisto.Descricao = formCollection["IDDescricao"];
linhaRegisto.DataRegisto = DateTime.Parse(formCollection["IDDataRegisto"]);
linhaRegisto.DataEntrega = DateTime.Parse(formCollection["IDDataEntrega"]);
linhaRegisto.DataEntregaRequisitada = DateTime.Parse(formCollection["IDDataEntregaRequisitada"]);
if (string.IsNullOrEmpty(formCollection["IDEstadoLinha"])) linhaRegisto.EstadoLinhasPedido = null; else linhaRegisto.EstadoLinhasPedido = int.Parse(formCollection["IDEstadoLinha"]);
if (string.IsNullOrEmpty(formCollection["IDFaseLinha"])) linhaRegisto.FaseLinhasPedido = null; else linhaRegisto.FaseLinhasPedido = int.Parse(formCollection["IDFaseLinha"]);
linhaRegisto.Observacoes = formCollection["IDObservacoes"];
appAdo.L_LinhaRegistoPedido.Add(linhaRegisto);
appAdo.SaveChanges();
}
return RedirectToAction("Index");
}
catch (Exception ex)
{
ModelState.AddModelError("", ex);
return View(linhaRegisto);
}
}
, но я получаю сообщение об ошибке:
"Неверное имя столбца 'CabecRegisto_Id'."
Этот столбец создан Entity Framework, и я не знаю, как связать внешний ключ L_LinhaRegistoPedido (IdCabec) с L_CabecRegisto для Entity Framework, найти внешний и не генерировать этот автоматический ..