我知道這個問題可能對其他人沒有幫助,但我不知道任何其他地方可以提問類似的問題,因爲我只是在學習如何編寫代碼!如果你刪除這個帖子,請讓我知道我在哪裏可以問這種類型的問題?請幫我理解這段ASP.NET代碼
// This part is Auto Generated
namespace SimpleScrum.Models
{
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
public partial class SimpleScrumEntities : DbContext
{
public SimpleScrumEntities()
: base("name=SimpleScrumEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public DbSet<ProductBacklogItem> ProductBacklogItems { get; set; }
public DbSet<Product> Products { get; set; }
public DbSet<Role> Roles { get; set; }
public DbSet<SprintBacklogItem> SprintBacklogItems { get; set; }
public DbSet<Sprint> Sprints { get; set; }
public DbSet<TeamMember> TeamMembers { get; set; }
public DbSet<User> Users { get; set; }
public DbSet<Today> Todays { get; set; }
}
}
// End of Auto Generated Part
public class SprintController :BaseController {
private readonly SimpleScrumEntities _db = new SimpleScrumEntities();
public ActionResult Index(Guid productID)
{
// what single means and why we can't change it with Where clause
var product = _db.Products.Include("Sprints").Single(p => p.ID == productID);
var indexVM = new SprintIndex
{
ProductID = productID,
ProductName = product.Name
};
foreach (var sprint in product.Sprints)
{
indexVM.Sprints.Add(new SprintListItem
{
ID = sprint.ID,
StartDate = sprint.StartDate,
EndDate = sprint.EndDate
});
}
產品的變種已經在
sprintController
類是要存儲結果_db.Products.Include("Sprints").Single(p => p.ID == productID);
的一個返回值被創建,但我不明白爲什麼在循環中,我們」重新指向
product.Sprints
?我們和爲什麼我們可能有權訪問其他屬性,例如product.Roles
?當我懸停在
...("Sprints").Single...
的Single
子句據說它返回滿足特定條件的序列中的唯一元件,並且如果多於一個這樣的元素存在拋出異常。因此,如果產品將只保留一個元素,那麼我們在product.Sprints
中有一個循環?
非常感謝!我在哪裏可以找到Linq命令的參考幫助,以便我更好地理解它們?還有關於已創建的產品變量,是否可以訪問其他產品屬性?像TeamMembers或..? – curiousStudent
@curiousStudent我認爲,您可以閱讀關於實體框架(和代碼優先),LINQ的任何文章,並瞭解它們的工作原理。 – eXit
@curiousStudent檢查http://www.asp.net/mvc/tutorials它可能有幫助 – eXit