Код EF 4.2 Во-первых, как отобразить с помощью свободного API? - PullRequest
1 голос
/ 30 ноября 2011

(Так как у меня есть предопределенная база данных, я не могу позволить EF воссоздать ее).

Это отображение, которое я использую сейчас (работает, но я хочу переписать, используя свободный API):

public class League
{        
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid LeagueId { get; set; }
    ....
    #region References

    public virtual ICollection<News> News { get; set; } 

    #endregion
}

public class News
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid NewsId { get; set; }
    public Guid LeagueId { get; set; }
    ....
    #region References

    [ForeignKey("LeagueId")]
    public virtual League League { get; set; }

    #endregion
}

Теперь, как я могу отобразить это, используя свободный API?

Обновление Написал это и работает, но есть ли более простая версия?

modelBuilder.Entity<League>().HasMany(x => x.News).WithRequired(y => y.League).HasForeignKey(c => c.LeagueId);

Обновление 2 Я добавил те, которые пропали без вести на занятиях. Но проблема в том, что если я оставлю это и попробую, то это не получится. Мне нужно где-то указать ключ. Я не могу позволить EF создать базу данных, и она отказывается просто работать с таблицами.

1 Ответ

1 голос
/ 30 ноября 2011

Вы должны посмотреть на эту статью, например: http://www.codeproject.com/Articles/184133/Using-Entity-Framework-4-1-Code-First-with-an-exis Основная часть заключается в том, что вы должны удалить инициализатор БД по умолчанию:

Database.SetInitializer<YourContext>(null);

И это должно препятствовать тому, чтобы EF пытался изменить ваши дб или бросить ошибки. Он просто попытается работать с тем, что вы ему даете.

...