Интересный маленький кусочек, чтобы поделиться.В моей модели я переносил свой код из одной платформы .NET в другую и пропустил свойство, которое преобразовывало строковое поле xml в XDocument.К этому свойству должен был быть применен атрибут NotMappedAttribute, но, как я уже сказал, я забыл, а затем начал получать эту не очень специфическую ошибку:
Во время генерации модели была обнаружена одна или несколько ошибок проверки:
\ tSystem.Data.Entity.Edm.EdmEntityType:: EntityType «XDocument» не имеет определенного ключа.Определите ключ для этого EntityType.\ tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet «XDocuments» основан на типе «XDocument», для которого не определены ключи.
Я преследовал свой хвост в течение часа, потому что ошибка происходила наодна из других моделей, представленных моим классом DbContext.Из-за разочарования я искал все свойства XDocument в моей сборке и BAMB!Нашел тот, у которого не было атрибута NotMapped.
Просто хотел показать это, чтобы кто-то другой не выдернул свои волосы.
Пример:
// This NotMappedAttribute was missing and is required to prevent EF
// from treating the XDocument class as an entity that requires
// a KeyAttribute.
[NotMapped] //<== missing until now
public XDocument DataXml {
get { return XDocument.Parse(this.m_Xml); }
set {
this.m_Data = value.ToString();
}
}