Я шукав ресурси, як оголосити зовнішні ключові відносини та інші обмеження, використовуючи код перший EF 4.1 без особливої удачі. В основному я будую модель даних у коді та використовую MVC3 для запиту цієї моделі. Все працює через MVC, що чудово (кудо Microsoft!), Але тепер я хочу, щоб він НЕ працював, тому що мені потрібно обмежувати модель даних.
Наприклад, у мене є об'єкт Order, який має тонну властивостей, які є зовнішніми об'єктами (таблицями). Зараз я можу створити замовлення без проблем, але не маючи змоги додати зовнішній ключ або зовнішні об’єкти. MVC3 встановлює це без проблем.
Я усвідомлюю, що я міг просто додати об'єкти до класу контролера перед збереженням, але хотів би, щоб виклик DbContext.SaveChanges () не відбувся, якщо не були дотримані зв'язки обмежень.
НОВА ІНФОРМАЦІЯ
Отже, конкретно, я хотів би, щоб виняток стався, коли я намагаюся зберегти об'єкт замовлення без вказівки об'єкта клієнта. Здається, це не поведінка, якщо я просто складаю об'єкти, як описано в більшості документації 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 для пацієнта:
ПОВІДОМЛЕННЯ ПРО ПОМИЛКУ
Іноземний розподіл власності "Пацієнт" типу "PhysicianPortal.Models.Order" недійсний. Ім'я іноземного ключа "Parent" не знайдено в залежності від типу "PhysicianPortal.Models.Order". Значення Name має бути відокремленим комою списком імен властивостей іноземного ключа.
З повагою,
Гвідо