Я без особого успеха искал ресурсы о том, как объявлять отношения внешнего ключа и другие ограничения, используя сначала код EF 4.1. В основном я строю модель данных в коде и использую MVC3 для запроса этой модели. Все работает через MVC, и это здорово (спасибо Microsoft!), Но теперь я хочу, чтобы он НЕ работал, потому что мне нужны ограничения модели данных.
Например, у меня есть объект Order, который имеет массу свойств, которые являются внешними объектами (таблицами). Прямо сейчас я могу создать заказ без проблем, но не могу добавить внешний ключ или внешние объекты. MVC3 устанавливает это без проблем. исключение происходит, когда я пытаюсь сохранить объект Order без указание объекта клиента. Эта не похоже на поведение, если я просто составьте объекты, как описано в большинстве документов Code First EF.
Последний код:
public class Order
{
public int Id { get; set; }
[ForeignKey( "Parent" )]
public Patient Patient { get; set; }
[ForeignKey("CertificationPeriod")]
public CertificationPeriod CertificationPeriod { get; set; }
[ForeignKey("Agency")]
public Agency Agency { get; set; }
[ForeignKey("Diagnosis")]
public Diagnosis PrimaryDiagnosis { get; set; }
[ForeignKey("OrderApprovalStatus")]
public OrderApprovalStatus ApprovalStatus { get; set; }
[ForeignKey("User")]
public User User { get; set; }
[ForeignKey("User")]
public User Submitter { get; set; }
public DateTime ApprovalDate { get; set; }
public DateTime SubmittedDate { get; set; }
public Boolean IsDeprecated { get; set; }
}
Это ошибка, которую я получаю сейчас при доступе к представлению, сгенерированному VS для пациента:
СООБЩЕНИЕ ОБ ОШИБКЕ
Атрибут ForeignKeyAttribute в свойстве "Пациент" по типу "PhysicianPortal.Models.Order" не является действительный. Имя внешнего ключа Parent не найден на зависимом типе 'ВрачПортал.Модели.Заказ'. В Значение имени должно быть разделено запятыми. список имен свойств внешнего ключа.
С уважением,
Гвидо