powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Подход Code First. Как правильно создавать модели?
24 сообщений из 24, страница 1 из 1
Подход Code First. Как правильно создавать модели?
    #39590306
erman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Создаю БД в Visual Studio 2017 по принципу Code First. Создал 15 моделей. При исполнении Add-Migration name получаю ошибку :
Код: c#
1.
The entity type 'Costs' requires a primary key to be defined.


Модель Costs :
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
public class Costs
    {       
        public int IdCosts { get; set; }
        public DateTime dateCosts { get; set; }

        public List<TypeOfExpenditure> TypeOfExpenditures { get; set; }
        public TypeOfExpenditure TypeOfExpenditure { get; set; }
    }


Модель Earning, которая должна быть связана по внешнему ключу с моделью Costs :
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Earning
    {
        public int IdEarning { get; set; }
        public double earning { get; set; }

        public List<Profit> Profits { get; set; }
        public Profit Profit { get; set; }

        public List<Costs> Costs { get; set; }
        public Costs _Costs { get; set; }
    }



Класс MobileContext :
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
public class MobileContext : DbContext
    {
        public DbSet<Category> Categories { get; set; }
        public DbSet<Employee> Employees { get; set; }
        public DbSet<Manufacturer> Manufacturers { get; set; }
        public DbSet<KindOfSupply> KindOfSupplies { get; set; }
        public DbSet<TypeOfExpenditure> TypeOfExpenditures { get; set; }
        public DbSet<Season> Seasons { get; set; }
        public DbSet<SubCategory> SubCategories { get; set; }
        public DbSet<Costs> Costs { get; set; }
        public DbSet<Item> Items { get; set; }
        public DbSet<Delivery> Deliveries { get; set; }
        public DbSet<Picture> Pictures { get; set; }
        public DbSet<Sale> Sales { get; set; }
        public DbSet<Profit> Profits { get; set; }
        public DbSet<Earning> Earnings { get; set; }
        public DbSet<Salary> Salaries { get; set; }


        public MobileContext(DbContextOptions<MobileContext> options)
            : base(options)
        {

        }
    }



Что я ещё не сделал или вообще, что делаю не так? Как здесь определить первичный ключ?
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39590324
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39590371
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переименуй поля "IdXXX" в просто "Id" - этого будет достаточно - оно тогда само создаст в миграции primary key и даже сделает его identity(1,1). Если это не устраивает, то тогда либо добавлять аттрибут [Key], либо настраивать через fluent API.
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39590425
erman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, ребята, разобрался!
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39592410
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ermanСпасибо, ребята, разобрался!

" по принципу Code First. Создал 15 моделей."

Code First - злейшее зло
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39597975
jbond81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинermanСпасибо, ребята, разобрался!

" по принципу Code First. Создал 15 моделей."

Code First - злейшее зло

Database First & (Fluent)NHibernate & ... - OK?
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39597986
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинCode First - злейшее зло

любопытная теория. а пояснить сможешь?
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598463
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttРолг ХупинCode First - злейшее зло

любопытная теория. а пояснить сможешь?
Ну, он преувеличил).
У тебя больше такие проекты.
У меня, и у него больше проекты DatabaseFirst.
(Database First & (Fluent)NHibernate)
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598683
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ну, он преувеличил).
У тебя больше такие проекты.
У меня, и у него больше проекты DatabaseFirst.
(Database First & (Fluent)NHibernate)

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

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

CodeFirst отличная технология даже для средних проектов.

Database first считаю нужен только когда изначально надо разработать ПО для существующей БД. в ином случае, это хреновый подход.
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598692
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Да.
У вас бизнес логика в js.
У нас бл в АппСервере в java. Энтерпрайз решения.
БД уже есть для кучи клиентов одновременно. Никто генерировать бд не даст.
Разная архитектура.
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598739
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123У вас бизнес логика в js.

У нас нет бизнес логики в JS и никогда там её не было ))

Petro123У нас бл в АппСервере в java. Энтерпрайз решения.

Тоже логика на сервере.

Petro123БД уже есть для кучи клиентов одновременно. Никто генерировать бд не даст.

БД сама из воздуха появляется? ))

Petro123Разная архитектура.

Это да. У нас CQRS + Event Sourcing. Это означает, что единственную ценность представляет репозиторий событий. Это означает, что мы можем восстановить все наши СУБД с нуля на любой момент времени. Мы можем восстановить и привести систему в состояние не любой момент времени, т.е. откат в прошлое 100% обеспечить можем. Нет такого вопроса, на который мы не можем ответить. А SQL БД у нас генерируется и меняется на лету с изменением бизнес-моделей и логики.
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598791
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttУ нас нет бизнес логики в JS и никогда там её не было ))контроллер где? Роутинг? Ангуляр?
- бд предприятия оракле делает бд разработчик скриптами и IDE для БД.
Не в студии же))).
- CQRS , не люблю и у нас этого нет.
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598794
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttединственную ценность представляет репозиторий событий.а у нас ценность Данные.
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598806
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123контроллер где? Роутинг? Ангуляр?

это UI

Petro123- бд предприятия оракле делает бд разработчик скриптами и IDE для БД.

на безрыбье и рак рыба, я тоже когда-то работал с такими бездарями

Petro123- CQRS , не люблю и у нас этого нет.

для многих это слишком сложно. думать надо.
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598807
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123hVosttединственную ценность представляет репозиторий событий.а у нас ценность Данные.

а как его по отчеству?
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598816
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМы можем восстановить и привести систему в состояние не любой момент времени, т.е. откат в прошлое 100% обеспечить можем.
и часто вы базу в прошлое открываете? )
похоже на разработку прототипов.
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598832
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttэто UIнеа))
БЛ обычно в одном месте.
У вас БА решил ввести новую сущность и новую ИС - Гостинница.
В LUA он добавил сущность Номера.
Дальше?
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598838
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttоткат в прошлоев оракле и гугле это из коробки
Select from table прошлое - 3
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39598840
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttна безрыбье и рак рыба, я тоже когда-то работал с такими бездарями если писал pipeline функции, тогда ты крут.
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39599127
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонhVosttМы можем восстановить и привести систему в состояние не любой момент времени, т.е. откат в прошлое 100% обеспечить можем.
и часто вы базу в прошлое открываете? )
похоже на разработку прототипов.

Был прецедент, когда требовалось разбирательство, требующее ответа на вопрос «а как было вот тогда-то?». Данная возможность не самоцель, просто так получилось, что у нас есть такая возможность ))
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39599145
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123в оракле и гугле это из коробки
Select from table прошлое - 3

ну-ну
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39599146
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123если писал pipeline функции, тогда ты крут.

писал всякое
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39599212
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123в оракле и гугле это из коробки
Select from table прошлое - 3

ну-ну
Вот фома неверующие
Технология Oracle Flashback

Технология Oracle Flashback предоставляет набор функциональных возможностей для доступа к данным архивов и защиты от ошибок. Flashback – уникальная технология в базе данных Oracle, которая поддерживает восстановление данных на любом уровне, включая отдельные строки, транзакции, таблицы и базы данных. Используя функции единовременных копий, можно легко получать доступ к более ранним версиям данных, а также осуществлять анализ изменений и восстановление при нарушении логической целостности даже в режиме оффлайн. Технология Flashback включает следующие функции:

Flashback Query позволяет восстанавливать единовременные копии данных, которые могли быть случайно удалены или изменены.
Flashback Version Query обеспечивает механизм просмотра изменений, произошедших в БД с течением времени на уровне строк.
Flashback Transaction Query – обеспечивает механизм просмотра изменений в БД на уровне транзакций.
Flashback Database – новая стратегия создания единовременных копий. Она быстро восстанавливает базу данных до предшествующего состояния, что позволяет решать проблемы, связанные с потерей логической структуры данных или ошибками пользователей.
Flashback Table обеспечивает возможность быстрого и простого восстановления одной или нескольких таблиц до указанного момента времени.
Flashback Drop обеспечивает защиту при удалении объектов, поскольку можно очень быстро и легко восстановить таблицу и связанные с ней компоненты.
...
Рейтинг: 0 / 0
Подход Code First. Как правильно создавать модели?
    #39599260
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Вот фома неверующие
Технология Oracle Flashback

Эта технология только про данные, а Event Sourcing про все действия, оказывающие влияния на все СУБД, как SQL, так и множество других в микросервисной архитектуре.

Хотя тоже гуд.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Подход Code First. Как правильно создавать модели?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]