Entity Framework связывается с обнуляемыми столбцами и без внешних ключей

Я пытаюсь использовать Entity Framework с базой данных, которая не использует внешние ключи. Что еще хуже, таблицы, имеющие отношения, используют связанные поля, которые могут быть нулевыми. Например, Order таблица имеет столбец для ClientID то есть nullable, Помня, что я не создавал эту базу данных и не могу ее изменить, я хотел бы по-прежнему иметь возможность использовать Entity Framework (v6.1) для выполнения операций CRUD над базой данных.

Проблема, как вы могли ожидать, связана с ассоциацией между сущностями. Я могу создать ассоциации самостоятельно, но не могу установить ссылочную целостность, потому что свойства в сущностях сопоставляются со столбцами в базе данных, которые могут быть NULL,

Есть ли способ обойти это? Возможно, способ использовать ассоциации без определения ссылочной целостности? Я должен был убедиться, что все дочерние записи будут удалены при удалении данного родителя.

1 ответ

Решение

Я думаю, что это будет работать:

public class Order
{
   //other properties
   public int? ClientId {get; set;}
}

И установить

modelBuilder.Entity<Order>()
.HasOptional(x=>x.Client)
.WithMany(x=>x.Orders)
.WithForeignKey(x=>x.CliendId);
Другие вопросы по тегам