2015-11-19 3 views
0

У меня есть сложный первичный ключ в этой таблице определяется следующим образомкомплексов первичного ключа и ограничение ошибок в EF CodeFirst

[Key, Column(Order = 1), DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public int SymbolId { get; set; } 

    [Key, Column(Order = 2)] 
    public SymbolType SymbolType { get; set; } 

    [Key, Column(Order = 3), DataType(DataType.Date)] 
    public DateTime Date { get; set; } 

Я могу добавить данные в таблицу, проблема я тестирую путем добавления данных для тот же символ SymbolId каждый раз, и это не только то, что SymbolId не то, что отображается в столбце, он, как представляется, является столбцом автоматического увеличения, когда я указывал, что он имеет тип DatabaseGeneratedOption.None. Фактический SymbolId равен 10, и это то, что должно быть в столбце SymbolId для каждой записи.

Вот что таблица выглядит в SQL Azure

enter image description here

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

ответ

-3

У вас возникли проблемы с дизайном базы данных.

Нет смысла составлять одну из составных клавиш в виде автоматического увеличения.

Композитные клавиши не должны быть автоматическими.

+0

ОП задает * почему * поле оказалось ИДЕНТИЧНОСТЬ, даже если оно помечено 'DatabaseGeneratedOption.None'. OP никогда не пыталась создать составной индекс с полем IDENTITY –

+0

Совокупный ключ никогда не должен был быть идентификатором, автоматически увеличивающимся полем, таким образом, сообщение. – dinotom

0

Попытался воспроизвести его на лазури, но не смог. Вещи работают для меня с аналогичным набором схем, вот мой schema and data

Смежные вопросы