我有2个实体.....与1-0关系(Documento和Archivo)
public class Documento
{
public int DocumentoID { get; set; }
public int? ExpedienteID { get; set; }
public int? TipoDocumentoID { get; set; }
public int? ArchivoID { get; set; }
public DateTime? FechaRegistro { get; set; }
public int? Fojas { get; set; }
public string Referencia { get; set; }
public bool TieneArchivoFisico { get; set; }
public DocumentoAdicional? Adicional { get; set; }
public virtual Expediente Expediente { get; set; }
public virtual TipoDocumento TipoDocumento { get; set; }
public virtual Archivo Archivo { get; set; }
}
public class Archivo
{
public int ArchivoID { get; set; }
public int DocumentoID { get; set; }
public string Nombre { get; set; }
public string Descripcion { get; set; }
public string Resumen { get; set; }
public byte[] DatosArchivo{ get; set; }
public virtual Documento Documento { get; set; }
}
当我保存这个2 ...它们正确保存到数据库,但它们没有连接....这是我用来保存它们的代码:
public bool AdjuntarDocumentoAExpediente(Documento documento, string nombreArchivo, Stream streamArchivo, string descripcion, string resumen, out string mensajeError)
{
bool resultado = false;
mensajeError = string.Empty;
try
{
using (var contexto = new ModeloTC())
{
documento.TieneArchivoFisico = true;
Archivo archivo = new Archivo();
archivo.Documento = documento; //adding relation here
archivo.Descripcion = descripcion;
archivo.Nombre = nombreArchivo;
archivo.Resumen = resumen;
archivo.DatosArchivo = ConvertirStreamABytes(streamArchivo);
contexto.Archivos.Add(archivo);
contexto.SaveChanges();
resultado = true;
}
}
catch (Exception ex)
{
mensajeError = "BLL AdjuntarDocumentoAExpediente:" + ex.GetBaseException().Message;
}
return resultado;
}
问题是......在执行此方法后,这就是我的数据库数据的样子......
Table Archivo
ArchivoID DocumentoID Nombre Descripcion Resumen DatosArchivo
5 0 C:\Users\test\justafilename.txt lalala lalalalala
Table Documento
DocumentoID ExpedienteID ArchivoID FechaRegistro .....
5 1 NULL 2014-11-06 .....
正如您所看到的,Archivo表中的DocumentoID的值为0 ......而Documento表中的ArchivoID为NULL ......除关系外,两个实体都已正确保存。 .....我不知道为什么会这样......
答案 0 :(得分:0)
你在documento中有archoid和archovoid。还有documento中的documento虚拟属性和documento中的archivo虚拟属性。这是循环依赖,因此无法创建关系。您需要删除其中一个,具体取决于哪个是主表,哪个是子表。