我知道这个问题可能对其他人没有帮助,但我不知道任何其他地方可以提问类似的问题,因为我只是在学习如何编写代码!如果你删除这个帖子,请让我知道我在哪里可以问这种类型的问题?请帮我理解这段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