Модель содержит список <OtherModel>, но содержимое не загружается

Это мой первый вопрос о stackoverflow, я надеюсь, что я делаю это правильно;) Поиск не дает никаких намеков на мою текущую проблему. Я новичок в ASP.NET MVC 4.

Я создал новый проект ASP.NET MVC 4 с использованием Razor-HTML-Engine. Я создал две модели:

Клиент модели

[Table("Clients")]
public class Client
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string ContactName { get; set; }

    public ICollection Licenses { get; set; }
}

Лицензия модели

[Table("Licenses")]
public class License
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string SerialNumber { get; set; }

    public ICollection ActivationHistory { get; set; }
}

Я прочитал, что мне нужно будет сделать новый класс, полученный из DbContext в порядке, чтобы это нормально работало:

public class ClientDbContext : DbContext
{
    public DbSet Clients { get; set; }
    public DbSet Licenses { get; set; }
}

По-моему, это дает мне:

  • two Tables with PrimaryKeys and the association between the Tables (1:N)
  • the ability to create a Client Object and use Client.Licenses.Add() to add a new Element to the Table after using db.SaveChanges()
  • a Client with all Licenses using var t = db.Clients.Single(a => a.Id == 1);

  • Am I right so far?

Теперь я добавил данные Клиента:

// Get Context
var c = new ClientDbContext();

// Create new License
var n1 = new License();
// Testdata
n1.SerialNumber = "12345";

// Get test Client
var test = c.Clients.Single(v => v.ContactName.Contains("Testclient"));

// Add test License to Client
test.Licenses.Add(n1);

// Save Changes
c.SaveChanges()

Checking the Database, a new Row in the License-Table has been added. There is a foreign Key Client_Id pointing to the correct client Testclient

Но если я попытаюсь показать информацию из Лицензии в представлении, вообще нет записей:

                 foreach (var item in Model.Licenses)
                 {
                     @Html.DisplayFor(modelItem => item.SerialNumber)
                 }

Я использую стандартный контроллер-метод:

    public ActionResult Details(int id = 0)
    {
        Client client = db.Clients.Find(id);
        if (client == null)
        {
            return HttpNotFound();
        }

        return View(client);
    }

Может кто-нибудь, пожалуйста, дать мне подсказку, что я делаю неправильно?

Большое спасибо!

1
nl ja de

1 ответы

Вы должны пометить свои свойства навигации (Лицензии) как virtual .

1
добавлено
Большое вам спасибо, это решает проблему! Так легко, я скучаю по лесу за деревьями;)
добавлено автор Dennis Alexander, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)