我在问这里之前尝试过谷歌搜索,但找不到任何解决方案。
我有这两个类和一个映射一对多
我正在尝试附加一个新对象
公共类 MyContext : DbContext
{
公共 IDbSet Operacoes { 获取;放; }
公共 IDbSet Apontamentos { 获取;放; }
}
公开课歌剧
{
公共字符串 Filial { 得到;放; }
公共字符串 Codigo { 获取;放; }
公共字符串 Descricao { 获取;放; }
}
公共课 Apontamento
{
公共 int ID { 获取;放; }
公共字符串 Filial { 得到;放; }
公共字符串 OperacaoCodigo { 获取;放; }
公共虚拟 Operacao Operacao { get; 放; }
}
公共类 OperacaoMap : EntityTypeConfiguration
{
公共 OperacaoMap()
{
ToTable("za6010");
HasKey(x => new { x.Filial, x.Codigo })
.Property(x => x.Codigo).HasColumnName("za6_cod");
属性(x => x.Descricao).HasColumnName("za6_desc");
}
}
公共类 ApontamentoMap : EntityTypeConfiguration
{
公共 ApontamentoMap()
{
ToTable("za4010");
HasKey(x => new { x.Filial, x.Id });
属性(x => x.OperacaoCodigo)
.HasColumnName("za4_oper");
//
HasRequired(x => x.Operacao)
。与许多()
.HasForeignKey(x => new { x.Filial, x.OperacaoCodigo })
.WillCascadeOnDelete(false);
}
}
公共静态类程序
{
静态无效主()
{
//这不起作用,我需要它来工作。
var context = new MyContext();
var newObj = 新的 Apontamento
{
孝顺 = "01",
OperacaoCodigo = "001"
};
context.Apontamentos.Attach(newObj);
var desc = newObj.Operacao.Descricao; // 这里 Operacao 属性为 null
//这有效
var newObjTmp = 新的 Apontamento
{
孝顺 = "01",
OperacaoCodigo = "001"
};
var operacao = context.Operacoes.Where(x => x.Codigo == "001");
context.Apontamentos.Attach(newObj);
var descTmp = newObjTmp.Operacao.Descricao; // Operacao 属性没问题。
}
}