указание внешнего ключа для таблицы программно с помощью fluentapi - PullRequest
0 голосов
/ 19 августа 2011

Привет, есть ли возможность назначить foriegnkey для таблицы, используя объект ....

Пожалуйста, посмотрите этот вопрос для уточнения. Как добавить одну запись для двух таблиц, используя linq для сущностей

позвольте мне объяснить четко .....

      i have a product table    product_id
                                product_name 
                                product_description
                                category_id


                                category table
                                category_id
                                category_name 

к сожалению, невозможно указать category_id в качестве внешнего ключа во время создания таблицы. Таблица сущностей сама взяла category_id в качестве столбца, а не внешнего ключа

так .. я хочу указать этот как внешний ключ, так что ... можно ли указать как внешний ключ программно Может ли любой иметь пример кода для указания иностранного ключа, используя свободный API

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Если вы используете EntityFramework 4.1, вы можете использовать Fluent API , который позволяет указывать имена ключей и другие свойства ассоциации.

0 голосов
/ 20 августа 2011

Вот пример того, как я это сделал в EF 4.1 CodeFirst.Я думаю, вы можете использовать очень похожий подход.

public class P
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Desc { get; set; }
    public string CategoryId { get; set; }
}

public class C
{
    public string Id { get; set; }
    public string Name { get; set; }
}

public class ProductsContext : DbContext
{
    public DbSet<P> Products { get; set; }
    public DbSet<C> Categories { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<P>().HasRequired(p => p.CategoryId).WithRequiredDependent();
    }
}

В OnModelCreating вы указываете контекст, как хотите устанавливать отношения, даже если в БД таких отношений нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...