Я пытаюсь правильно структурировать свою базу данных для своего веб-приложения. Я не уверен в правильном способе работы с ключами и отношениями. В основном ..ASP Entity Framework - Код FIrst - Дизайн данных - Ключи
Моего проект содержит продукта
, который может содержать много отчетов, однако, тот же отчет может не относятся к нескольким продуктам.
У меня есть Пользователи, у которых может быть много доступных для них отчетов .. независимо от родительского продукта отчетов.
Моя структура до сих пор
public class Product
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
}
public class Report
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual Product Product { get; set; }
}
public class User
{
[Key]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public virtual ICollection<Report> Reports { get; set; }
}
И Seed
protected override void Seed(Insight.Data.InsightDb context)
{
context.Products.AddOrUpdate(p => p.ProductID,
new Product { ProductName = "Product 1" },
new Product { ProductName = "Product 2" }
);
context.Reports.AddOrUpdate(p => p.ReportID,
new Report { ReportName = "Report A", ProductID = 1, },
new Report { ReportName = "Report B", ProductID = 1, },
new Report { ReportName = "Report C", ProductID = 1, },
new Report { ReportName = "Report D", ProductID = 2, },
new Report { ReportName = "Report E", ProductID = 2, }
);
context.Users.AddOrUpdate(u => u.UserID,
new User { FirstName = "Frank", LastName = "Reynolds", },
new User { FirstName = "Dee", LastName = "Reyonolds", }
);
}
Я не уверен, как правильно назначить отчеты к пользователей или даже знать, если я нахожусь на правильном пути. Кроме того, есть ли более эффективная практика, чем использование int в качестве ключа?
ЗАКАНЧИВАТЬ редактировать я только что сделал для вашей модели. Может быть, это поможет немного. Если я правильно понимаю, вы хотите, чтобы Пользователь, у которого есть список связанных с ними отчетов, и вы хотите получить уникальный продукт в каждом из этих отчетов? –
Спасибо. Модели сущностей правильно выравниваются, как только я нахожусь на сервере SQL, и заполняю и запрашиваю таблицы вручную. Можете ли вы предложить пример, чтобы заполнить их соответствующим образом внутри моего кода C# внутри Seed()? – scniro