Должен ли я иметь столбец внешнего ключа в моих моделях сущностей?

Я перехожу от Entity Framework к NHibernate. При рассмотрении того, как создавать объекты домена, я заметил, что в некоторых примерах они не включают столбец отношения внешнего ключа. Поскольку класс Sessionсодержит метод Load(), можно просто использовать объекты без обращения к базе данных вместо первичных ключей. Является ли это нормальной практикой при построении моделей сущностей в NHibernate.

Пример сущности

public class BlogPost : Entity
{
    public virtual string Name { get; set; }

    //Should this be here
    public virtual int AuthorID { get; set; }

    public virtual Author Author { get; set; }
}

Создание объекта

BlogPost post = new BlogPost
{
    Name = "My first post",
    Author = session.Load<Author>(1) //Avoids hitting the database
};

session.Save(post);

--ИЛИ---

BlogPost post = new BlogPost
{
    Name = "My first post",
    AuthorID = 1 //Use the id of the object
};

session.Save(post);
5
задан Stefan Bossbaly 23 July 2012 в 21:05
поделиться