Я перехожу от 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);