Ответ 1
Это зависит от того, что вы собираетесь делать с столбцами. Если у вас есть столбцы внешнего ключа, такие как AddressId
, у вас, вероятно, есть несколько объектов Address
, которые вы хотите связать с вашими объектами Xyz
. Вам нужно решить, как entites относятся друг к другу, и настроить сопоставление, которое вы хотите между ними.
Вам понадобится свойство навигации в классе Address
или вашем классе Xyz
, иначе нет привязки внешнего ключа, а ваши чужие идентификационные столбцы будут рассматриваться как обычные столбцы ( что хорошо, если это то, что вы хотите).
Итак, если бы вы добавили свойство навигации в свой объект Xyz
public class Xyz
{
// Your code
public int AddressId { get; set; }
public virtual Address MyAddress { get; set; }
}
// Your Address class
public class Address
{
public int ID;
}
Вы можете настроить отображение, выполнив что-то в этих строках (оно будет меняться в зависимости от отношения:
public sealed class XyzConfiguration : EntityTypeConfiguration<Xyz>
{
public XyzConfiguration()
{
// Your code.
this.HasOptional(x => x.MyAddress) // Your Xyz has an optional Address
.WithMany() // Address may be owned by many Xyz objects
.HasForeignKey(x => x.AddressId); // Use this foreign key.
}
}
Я не пробовал использовать пространственные типы и EF, но я бы начал здесь: http://msdn.microsoft.com/en-us/data/hh859721.aspx
Там много информации о конфигурациях сопоставления при начале работы с EF-страницами: http://msdn.microsoft.com/en-us/data/ee712907 попробуйте "Свободный API" - Конфигурирование/Сопоставление Свойства и типы "
Здесь также немного сокращенное объяснение различных типов ассоциаций: Code First: Независимые ассоциации и ассоциации внешних ключей?