My Model:EF-код первый сложный типа с навигационным свойством
public class Country
{
public int CountryId { get; set; }
public string Name { get; set; }
public virtual ICollection<User> Users { get; set; }
}
public class Location
{
public string Address { get; set; }
public virtual int CountryId { get; set; }
public virtual Country Country { get; set; }
}
public class User{
protected User()
{
Location = new Location();
}
public int UserId { get; set; }
public Location Location { get; set; }
}
При создании базы данных, я получаю:
One or more validation errors were detected during model generation:
System.Data.Edm.EdmEntityType: : EntityType 'Location' has no key defined. Define the key for this EntityType.
System.Data.Edm.EdmEntitySet: EntityType: EntitySet �Locations� is based on type �Location� that has no keys defined.
Как есть навигационное свойство внутри сложного типа? Если я удалю навигационную собственность страны, она работает нормально.
Но как насчет 'CountryID' целого класса' Location'? Можно ли сделать это ограничение внешнего ключа? (У меня есть аналогичная проблема и я не могу заставить ее работать) –
@ Исак: Нет, это невозможно. Если вы хотите иметь его в базе данных, вы должны сделать это непосредственно в базе данных, но EF не будет его отражать. –
Тот факт, что это не поддерживается, упоминается непосредственно в описании типа Complex на MSDN: http://msdn.microsoft.com/en-us/library/bb738472.aspx –