LINQ to SQL的CURD操作

mac2022-06-30  16

Scottgu在Visual studio 2008还是beta2的时候写过一系统关于linq to sql的文章,请看scottgu的中文博客http://blog.joycode.com/scottgu,博客园的hanxianlong对它进行了翻译,最重要是有中英文对照,请看http://www.cnblogs.com/hanxianlong/category/118843.html 在vs2008 beta2时,scottgu提到linq to sql支持的新增是这样的 NorthwindDataContext db = new NorthwindDataContext(); Product p = new Product(); p.Name="p1"; p.CategoryID=1;db.Products.Add(p);db.SubmitChange(); 删除 Product po=db.Products.Single(p=>p.Name=="p1");db.Products.RemoveAll(po);db.SubmitChange(); 注意红色行,正式版已经不是这样了,下面是正确的方式             Product p1 = new Product();             p1.ProductName = "ghb";             p1.CategoryID = 1;             p1.UnitPrice = 1;             p1.UnitsInStock = 1;             db.Products.InsertOnSubmit(p1);            db.SubmitChanges();

            Product p3 = db.Products.Single(p => p.ProductName == "ghb");             db.Products.DeleteOnSubmit(p3);            db.SubmitChanges(); 你也可以这样新增Category c1 = db.Categories.Single(p => p.CategoryID == 1); Product p1 = new Product(); p1.ProductName = "ghb"; p1.UnitPrice = 1; p1.UnitsInStock = 1; c1.Products.Add(p1); db.SubmitChanges(); 但是如果你像下面这样做删除则可能得到的并不是你想要的,Category c1 = db.Categories.Single(p => p.CategoryID == 1); Product p3 = db.Products.Single(p => p.ProductName == "ghb"); c1.Products.Remove(p3); db.SubmitChanges();因为这样,其实对于Product对象从Category集合中remove是做一个update操作,只是把product对象的categoryid置为null,而不会真实的删除这个product从数据库中。

shore 2008-01-10 16:50 发表评论

转载于:https://www.cnblogs.com/hotsoho.net/archive/2008/01/10/1206600.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)