powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Откуда dbset<> знает, что поле ID надо автоинкрементировать?
8 сообщений из 8, страница 1 из 1
Откуда dbset<> знает, что поле ID надо автоинкрементировать?
    #37433355
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
public class Topic
    {
        public int ID {get; set;}
        public string Title {get; set;}
        public string Body { get; set; }
        public int CommentsCount { get; set; }
    }

включенный в модель хранения данных
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
namespace MvcSimpleBlog.Models
{
    public class ContentStorage : DbContext
    {
        public DbSet<Topic> Topics { get; set; }
        public DbSet<Comment> Comments { get; set; }
    }
}

Откуда Среда знает, что ID -- ключевое поле, и что его надо автоинкрементировать (в контроллере и отображении) нет ни одной ссылки на это поле
...
Рейтинг: 0 / 0
Откуда dbset<> знает, что поле ID надо автоинкрементировать?
    #37433999
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
офф
На кол посадить изобретателя ОРМов!
Причём, чем дальше, тем всё хуже и хуже. Скоро вообще с данными никто работать не будет уметь.


2Жентос. А что за среда? Обычно, визуальные среды, для построения модели сами делают запросы к системным таблицам (sysobject, syscolumns, sysconstraints и т.п.). Так что никакой мистики нету.
...
Рейтинг: 0 / 0
Откуда dbset<> знает, что поле ID надо автоинкрементировать?
    #37434903
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge2Жентос. А что за среда? Обычно, визуальные среды, для построения модели сами делают запросы к системным таблицам (sysobject, syscolumns, sysconstraints и т.п.). Так что никакой мистики нету.
Microsoft Visual Web Developer Studio 2010
Просто из этого вопроса вытекают другие, вроде: "А если у меня не поля ID, то как мне, используя подход CodeFirst объявить свой собственный первичный ключ?". Или, если я поле ID добавил потом, когда уже есть первичный ключ в таблице, то он мне будет Id автоинкрементить?

А вопрос возник, когда я View делал: для поля Id не было поля ввода, что навело на мысль, что он автоинкрементируется. Вот и хотел узнать почему именно ЭТО поле студия выбрала: из-за названия, или из-за того, что оно первое?
...
Рейтинг: 0 / 0
Откуда dbset<> знает, что поле ID надо автоинкрементировать?
    #37434930
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жентос,

Чудес не бывает, наверное так и было при создании объявлено. Посмотрите как выглядят столбцы страницы.
...
Рейтинг: 0 / 0
Откуда dbset<> знает, что поле ID надо автоинкрементировать?
    #37434932
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeЖентос,

Чудес не бывает, наверное так и было при создании объявлено. Посмотрите как выглядят столбцы страницы.
Тьфу! Не страницы, а таблицы. :)
...
Рейтинг: 0 / 0
Откуда dbset<> знает, что поле ID надо автоинкрементировать?
    #37434938
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ShSerge, а вот в этом-то и вопрос: БД создается описанием класса (и в классе не указано ничего, определяющего первичный ключ) и строкой соединения (определяется сервер, где создается таблица)

Кстати, заглянуть в таблицу -- интересная мысль. Чем бы только sdf-ку открыть?
...
Рейтинг: 0 / 0
Откуда dbset<> знает, что поле ID надо автоинкрементировать?
    #37435305
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Откуда dbset<> знает, что поле ID надо автоинкрементировать?
    #37436109
Жентос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вестник, респект.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Откуда dbset<> знает, что поле ID надо автоинкрементировать?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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