0

Я изучаю ASP.NET и пытаюсь создать две таблицы с использованием первого подхода кода с использованием MVC. Ниже приведен пример файла .cs для курсов.столбец первичного ключа не отображается по умолчанию

public class Instructor 
    { 
     [Key] 
     public string name { get; set; } 
     public string address { get; set; } 
     public string address_ { get; set; } 
     public string email { get; set; } 
    } 
    public class Course 
    { 
     [Key] 
     [DisplayName("Course")] 
     [Required(ErrorMessage = "CSExxx")] 
     public string progId { get; set; } 
     public string subject { get; set; } 
     public string semester { get; set; } 
     public string description { get; set; } 
     [ForeignKey("instructor")] 
     public virtual string name { get; set; } 
     public virtual Instructor instructor { get; set; } 
    } 

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

enter image description here Очевидно, я не могу видеть имя столбец который я задекларирован как PK. Теперь, когда я нажимаю на Create New, тогда я могу видеть четыре столбца, включая столбец Первичного ключа, который является name. enter image description here

Мой вопрос: почему я не вижу столбец первичного ключа на главном дисплее.

+1

Первичный ключ должен быть ** системно-внутренним ** идентификатором без какого-либо «реального» значения, и это определенно не то, что конечный пользователь должен видеть или иметь возможность вводить. –

+1

На стороне примечание, обычно используется Паскаль-корпус для свойств 'ProgId' вместо' progId'. –

+0

@marc_s: Я не знал, что ПК должен быть скрыт. Я просто хотел увидеть через UI, что ПК правильно реализована или нет. Благодарю. – tanz

ответ

0

Шаблоны и генераторы кода при работе здесь принимают технический ключ, то есть тот, который не является видимым или значимым для пользователя.

Ваш выбор name спорно, простое решение здесь ввести

[Key] 
public int Id { get; set; } 

во всех классах. Если вы хотите придерживаться имени, просто отредактируйте созданный cshtml.

+0

Ох. Я как-то понял. На самом деле я изучаю эти вещи, поэтому я хотел создать первичный ключ, который я действительно смогу увидеть.Предположим, что я должен показать своему профессору через интерфейс, что я действительно реализовал концепцию первичного ключа, и я хочу показать ему, что, поскольку у меня есть первичный ключ, я не могу вводить повторяющиеся значения. Я не могу сделать это с помощью своего кода. Или подход, который вы предлагаете. Потому что я угадываю, даже если я держу столбец ID как PK; он не будет виден. – tanz

+0

Затем отредактируйте созданные страницы. –

+0

Вы хотите сказать, что мне нужно вручную отредактировать созданный «indexcs.html» ?! – tanz

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