Как узнать, что проект - сначала код или база данных?

В существующем проекте, как я узнаю, что это сначала код или база данных?

Проект имеет следующие строки кода:

public class TestDBContext : DbContext
{
    public DbSet<Player> Players { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }
}

И проект не имеет .edmx файл. Если какие-то другие детали понадобятся, я поделюсь.

РЕДАКТИРОВАТЬ:

Класс Player.cs

public class Player
{
    public int PlayerID { get; set; }
    public string PlayerName { get; set; }
}

РЕДАКТИРОВАТЬ 12.05.2017

ЕСЛИ я изменюсь database name от connection string и запустить проект, он создает database with the new namewith all tables, Может быть, это будет ударил за ответ.

3 ответа

Если это проект Database-first, то есть:


  • файл имени [name].edmx и вместе с ним [name].Context.tt & .cs
  • все таблицы, которые переводятся в класс, скрыты в дереве, как.edmx > .tt
  • в onModelCreating, есть throw new UnintentionalCodeFirstException()

Если нет, то все проблемы классов из таблиц находятся в проекте (без дерева).

Если файла .edmx нет, проект начинается с кода.

Здесь я делюсь своими наблюдениями.

В основном есть два подхода для реализации Entity Framework. 1. Code-first Если выбрано, он создаст простой файл.cs, который разработчики позже изменят согласно их требованию.

  1. Данные сначала Если выбрано, он создаст файл [name].edmx вместе с иерархией разных файлов. Он содержит файл.Context.tt и файл.Context.cs. Файл.Context.cs будет иметь фрагмент ниже, который указывает, была ли индуцированная модель сущности пустой при создании или с каким-либо объектом базы данных.

    Поиск пространства имен {использование системы; использование System.Data.Entity; использование System.Data.Entity.Infrastructure;

    public partial class XYZ_MSCRMEntities : DbContext
    {
       public XYZ_MSCRMEntities()
        : base("name=xyz_MSCRMEntities")
       {
    }
    
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }
    
    public virtual DbSet<AnyDatabaseTableOrView> TableOrViewPluralized { get; set; }
    }}
    

В приведенном выше фрагменте самая последняя строка (свойство DbSet) показывает, что он импортировал объект базы данных, и именно так он называется "Сначала данные"

Другие вопросы по тегам