291
技术社区[云栖]
Linq操作与外键的联系
一个饭局有多个参与者
这是一些基本方法
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();
最后更新:2017-04-02 22:16:21
上一篇:
个人需要的准备材料2
下一篇:
jQuery中的toggle方法
Mac OS X也可以跑OpenGL啦
在Entity Framework中使用存储过程(三):逻辑删除的实现与自增长列值返回
Tomcat启动报错:java.lang.IllegalArgumentException: Can't convert argument:null
Oracle 11g 在使用时应该启动哪些服务?
SQL中truncate、delete与drop区别
Redis开发运维实践常见运维操作(二)
面试官最常问的问题总结(一)
实用正则表达式扫描android SDcard的文件
专治酷暑黑科技集合
Android中内容观察者的使用---- ContentObserver类详解