Как узнать, что проект - сначала код или база данных?
В существующем проекте, как я узнаю, что это сначала код или база данных?
Проект имеет следующие строки кода:
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 name
with all tables
, Может быть, это будет ударил за ответ.
3 ответа
Если это проект Database-first, то есть:
- файл имени [name].edmx и вместе с ним [name].Context.tt & .cs
- все таблицы, которые переводятся в класс, скрыты в дереве, как.edmx > .tt
- в onModelCreating, есть
throw new UnintentionalCodeFirstException()
Если нет, то все проблемы классов из таблиц находятся в проекте (без дерева).
Здесь я делюсь своими наблюдениями.
В основном есть два подхода для реализации Entity Framework. 1. Code-first Если выбрано, он создаст простой файл.cs, который разработчики позже изменят согласно их требованию.
Данные сначала Если выбрано, он создаст файл [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) показывает, что он импортировал объект базы данных, и именно так он называется "Сначала данные"