Сначала настройте код EF без внешнего ключа - PullRequest
1 голос
/ 01 июля 2011

У меня есть следующая модель:

public class Product
{
    public long Id { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Catalog> Matches { get; set; }
}

public class Catalog
{
    public long Id { get; set; }
    public string Title { get; set; }
}

Сначала используя код Entity Framework, я настраиваю его с помощью:

public DbSet<Product> Products { get; set; }
public DbSet<Catalog> Catalogs { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    // not rules setup yet
}

В настоящее время, когда EF создает мою базу данных, он создает внешний ключ, допускающий обнулениетаблица каталогов называется Product_Id.Есть ли способ настроить EF так, чтобы он не создавал внешний ключ в таблице каталога?

Таблица каталога содержит импортированные элементы из каталога, которые не должны иметь отношения к таблице "Продукты".Во время выполнения будет выполнен поисковый запрос для каждого продукта, и результат будет добавлен в коллекцию каталога объекта продукта.

1 Ответ

1 голос
/ 01 июля 2011

Для вашей цели я бы исключил коллекцию Matches из модели, либо с помощью аннотации данных ...

public class Product
{
    public long Id { get; set; }
    public string Name { get; set; }
    [NotMapped]
    public virtual ICollection<Catalog> Matches { get; set; }
}

... или в свободном коде:

 modelBuilder.Entity<Product>()
             .Ignore(p => p.Matches);
...