drroc 2012年05月29日
新手,EF4,一对多,如何从子查询到父?
父:

public class Product
{
public int ID { get; set; }
public string name { get; set; }
public virtual ICollection<ProductItem> items { get; set; }//一对多
}

子:

public class ProductItem
{
public int ID { get; set; }
public Product product { get; set; }//按理,这个对象是指向父
public string package { get; set; }
public int pack { get; set; }
public decimal price { get; set; }
}


EF:

public class Purchase : DbContext
{
public Purchase() : base("Purchase") { }//Purchase表示数据库链接
public DbSet<Product> product { get; set; }
public DbSet<ProductItem> product_item { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//一对多,这句正常
modelBuilder.Entity<Product>().HasMany(p => p.items).WithRequired(i => i.product);
//下面这句是想从子查询到父
modelBuilder.Entity<ProductItem>().HasRequired(i => i.product);
}
}


查询:

Purchase db = new Purchase();

ProductItem item = db.product_item.Single(i => i.ID == id);

if (item == null)
return View();
//下面这句出错,product对象为空,请问我如何才能让product有值,指向父
ViewBag.product_name = item.product.name;


请大家指教,谢谢
...全文
4528 点赞 收藏 12
写回复
12 条回复

还没有回复,快来抢沙发~

发动态
发帖子
LINQ
创建于2007-12-13

7865

社区成员

4739

社区内容

.NET技术 LINQ
社区公告
暂无公告