ASP.NET两个表之间的关系

时间:2016-10-08 16:01:33

标签: c# sql asp.net has-many

我是Asp.Net和Entity Framework的新手,我有一点问题。

我知道你可以帮助我,因为它很简单,我只知道如何在PHP XD中做到这一点

我有2个模特

 public class Suppliers
 {
    public int ID { get; set; }

    public int ID_Guard { get; set; }

    public string Supplier{ get; set; }
    public string Description { get; set; }
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd hh:mm tt}", ApplyFormatInEditMode = true)]

    public DateTime Enter { get; set; }
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd hh:mm tt}", ApplyFormatInEditMode = true)]

    public DateTime Exit { get; set; }

    public virtual Guard Guard { get; set; }
}



public class Guard
{
    public int ID { get; set; }

    public string Name { get; set; }
    public virtual ICollection<Suppliers> Suppliers{ get; set; }

}

控制器

public class SuppliersController : Controller
{
    private SuppliersContext db = new SuppliersContext();

    public ActionResult Index()
    {
        return View(db.Suppliers.ToList());
    }
}

我想传递视图2表数据并将其关联

当我去索引时显示所有suppliers数据并显示Guard名称(注册供应商的人员进入和退出)

好了解决了

 var results = from c in db.Suppliers
                      join cn in db.Guard on c.ID_Guard equals cn.ID

                      where (c.ID_Guard == cn.ID)
                      select new Models.MyViewModel{ Name= cn.Name, ID = c.ID, Supplier=c.Supplier, Description=c.Description, Enter=c.Enter, Exit=c.Exit};

1 个答案:

答案 0 :(得分:0)

按照下面的代码工作,看起来和你的一样,我也添加了链接,希望你找到它有用

 public class Product
{
    public Product() { Id = Guid.NewGuid(); }
    public Guid Id { get; set; }
    public string ProductName { get; set; }

    public virtual ProductCategory ProductCategory { get; set; }
}


public class ProductCategory
{
    public int Id { get; set; }
    public string CategoryName { get; set; }
    public virtual ICollection<Product> Products { get; set; }
}
     /////view model///
public class ProductViewModel
{
    public Guid Id { get; set; }

    [Required(ErrorMessage = "required")]
    public string ProductName { get; set; }

    public int SelectedValue { get; set; }

    public virtual ProductCategory ProductCategory { get; set; }

    [DisplayName("Product Category")]
    public virtual ICollection<ProductCategory> ProductCategories { get; set; }

}

按照以下教程 relationship model

用于查询

下的基本联接使用
var dealercontacts = from contact in table1
                 join table2 in table2 on contact.Id equals another.ID
                 select contact;