一个饭局有多个参与者
这是一些基本方法
public class DinnerRepository:IDinnerRepository
{
NerdDinnerDataContext dc = new NerdDinnerDataContext();
public IQueryable<Dinners> FindAllDinners()
{
return dc.Dinners;
}
public IQueryable<Dinners> FindUpComingDinners()
{
return from dinner in dc.Dinners
where dinner.EventDate > DateTime.Now
orderby dinner.EventDate
select dinner;
}
public Dinners GetDinner(int id)
{
return dc.Dinners.Where(d => d.DinnerID == id).FirstOrDefault();
}
public void Add(Dinners d)
{
dc.Dinners.InsertOnSubmit(d);
}
// 一个饭局有多个参与者
// 删掉饭局,就要删掉参与者
public void Delete(Dinners d)
{
// 删除与之为外键的信息
dc.RSVP.DeleteAllOnSubmit(d.RSVP);
dc.Dinners.DeleteOnSubmit(d);
}
public void Save()
{
dc.SubmitChanges();
}
}
那么我取消一个饭局,那么即必须把RSVP表与之相关的参与者也要删掉,那么linq提供了一个方便的方法
public void Delete(Dinners d)
{
// 删除与之为外键的信息
dc.RSVP.DeleteAllOnSubmit(d.RSVP);
dc.Dinners.DeleteOnSubmit(d);
}
下面的示例代码首先检索一个 dinner 对象,然后添加一个 RSVP 对象。这里,使用 Dinner 对象的 RSVPs
集合对象。当调用 Resposity 对象的 Save()方法时,一条新的记录添加 RSVP表中。
DinnerRepository dinnerRepository = new DinnerRepository();
Dinner dinner = dinnerRepository.GetDinner(5);
RSVP myRSVP = new RSVP();
myRSVP.AttendeeName = "ScottGu";
dinner.RSVP.Add(myRSVP);
dinnerRepository.Save();