bueno al final encontre solucion para mi problema y trabaje asi el codigo
private void cmdAgregarPN_Click(object sender, EventArgs e)
        {
                IObjectContainer db = Db4oFactory.OpenFile(@"bd.yap");
                PersonaN P = new PersonaN();
                P.Direcciones = new List<Direccion>();
             
                P.Nombre = txtNombre.Text;
                P.ApellidoP = txtApellidoP.Text;
                P.ApellidoM = txtApellidoM.Text;
                P.Rut = txtRut.Text;
                P.Dv = Convert.ToInt32(txtDv.Text);
                P.Direcciones.Add(new Direccion() {Region= txtRegion.Text,Comuna=txtComuna.Text, Calle = txtCalle.Text, Numero = Convert.ToInt32(txtNumero.Text) });
               
                try
                {
                    db.Store(P);
                    db.Commit();
                }
                catch (Exception ex)
                {
                    throw;
                }
                finally
                {
                    db.Close();
                }
                MessageBox.Show("Persona Guardada");
                txtNombre.Clear();
                txtApellidoP.Clear();
                txtApellidoM.Clear();
                txtRut.Clear();
                txtDv.Clear();
                txtRegion.Clear();
                txtComuna.Clear();
                txtCalle.Clear();
                txtNumero.Clear();
            }
           
        }
pero ahora tengo otra duda
si tubiese una clase mas por ejemplo "tipodireccion" y en direccion tuviese public virtual List<tipodireccion> tiposdireccion
como hago para llegar a ella a traves de la clase persona?