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);