Linq to Entities или EF-версия Set Identity_Insert <TableName>ON - PullRequest
1 голос
/ 11 марта 2011

Аналогично Этот Вопрос использует linq to SQL , но я не хочу просто выполнять команды SQL из кода. Я мог бы написать хранимую процедуру.

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

Пользователь также хочет использовать функцию отката, поэтому существует явная вероятность пропусков, поскольку в этот момент будет удален год.

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

Вопрос: Есть ли способ закорачивать способ, которым EF вставляет записи, и указывать первичный ключ, который я хотел бы вставить в запись?

1 Ответ

1 голос
/ 11 марта 2011

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

Тем не менее, если вы должны сделать это таким образом, вы можете установить флаг StoreGeneratedPattern в значение «Нет», а затем вставить из приложения любой желаемый ПК, но, конечно, если сама БД использует автоинкрементный ключ некоторого добрый (например, IDENTITY), тогда вы все равно сломаетесь.

Обновление Почему требования к a) иметь одну строку в год и b) откатываться каждый год, переводить что-либо вообще в PK? Почему бы просто не иметь столбец 'year' (установлен на UNIQUE или нет), который можно использовать в вашем запросе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...