Допустим, у меня есть класс продукта со свойством Category.
public class Product : Entity<int> // Base class defines the Id
{
public virtual ProductCategory Category { get; set; }
}
Файл сопоставления прост
public class ProductMap : ClassMap<Product>
{
public ProductMap()
{
Id(x => x.Id);
References(x => x.Category).Nullable();
}
}
Использование SchemaExport.Create
Это создало два столбца в моей базе данных, ProductCategoryId
и CategoryId
. Учитывая мои условности, должен существовать только CategoryId
. Оба могут быть обнуляемыми, но используется только CategoryId
. Неважно, что ProductCategoryId
всегда равно нулю, и это столбец с ограничением внешнего ключа.
Почему это? На самом деле я не могу найти никаких проблем с кодом, насколько я могу сказать, что все работает нормально, используя столбец CategoryId. Я могу запросить / сохранить / обновить с или без категории. Я бы даже не знал, что другой столбец существует, если бы я не пошел искать в базе данных, но мне не нравится иметь столбец, когда я не знаю, для чего он. Есть ли причина, по которой это происходит, или что-то не так с тем, как я отобразил недействительную ссылку?