Как добавить запись со значением в столбец Key Attribute? - PullRequest
0 голосов
/ 06 ноября 2011

При добавлении новой записи свойство Key Attribute не сохраняет свое значение в БД.

Дальнейшее расследование показало, что его вообще нет в инструкции SQL.

Как добавить записи со значением в столбец Ключ?

EDIT:

Это таблица:

CREATE TABLE `members` (
    `UniqueID` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `MemberID` BIGINT(20) NOT NULL,
    PRIMARY KEY (`UniqueID`) USING BTREE,
    UNIQUE INDEX `Index_MemberID` (`MemberID`) USING BTREE);

Это сущность:

public class Member
{
    public long UniqueId { get; set; }
    [Key]
    public long MemberId { get; set; }
}

1 Ответ

1 голос
/ 06 ноября 2011

Ваше отображение неверно:

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

  • Вы определяете свое ключевое свойство MemberId как сгенерированную базу данных (поскольку это значение по умолчанию, и вы не выключаете его), но столбец в базе данных не является автоинкрементным тождеством.

Вторая проблема, которую вы можете решить, отключив идентификацию:

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long MemberId { get; set; }

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

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