zoukankan      html  css  js  c++  java
  • C# orm linq 真的不错

    C# orm linq 真的不错

    也是C# 一大进步,让C#摆脱了传统开发模式,个人还是比较喜欢的。跟java中的hibernate有点像,并且符合C# 开发人员的习惯,个人感觉。

    一下内容并非原创,转载msnd(http://msdn.microsoft.com/zh-cn/library/bb882643.aspx),

    介绍了 linq 对数据库进行增删改查,有兴趣的可以看看。

    使用 LINQ to SQL 可以执行的操作

    此内容为质量更高的人工翻译。若想同时查看此页面和原始英文页面的内容,请单击“首选项”然后选择“经典视图”作为您的查看首选项。

    LINQ to SQL 支持您作为 SQL 开发人员所期望的所有关键功能。您可以查询表中的信息、在表中插入信息以及更新和删除表中的信息。

    选择

    通过在您自己的编程语言中编写 LINQ 查询,然后执行此查询以检索结果,即可以实现选择(投影)。LINQ to SQL 自行将所有必要操作转换为您所熟悉的必要 SQL 操作。有关更多信息,请参见 LINQ to SQL

    在下面的示例中,检索来自伦敦的客户的公司名称并将其显示在控制台窗口中。

    // Northwnd inherits from System.Data.Linq.DataContext.
    Northwnd nw = new Northwnd(@"northwnd.mdf");
    // or, if you are not using SQL Server Express
    // Northwnd nw = new Northwnd("Database=Northwind;Server=server_name;Integrated Security=SSPI");
    
    var companyNameQuery =
        from cust in nw.Customers
        where cust.City == "London"
        select cust.CompanyName;
    
    foreach (var customer in companyNameQuery)
    {
        Console.WriteLine(customer);
    }
    
    
    
    插入

    若要执行 SQL Insert,只需向您已创建的对象模型添加对象,然后对 DataContext 调用 SubmitChanges 即可。

    在下面的示例中,通过使用 InsertOnSubmitCustomers 表添加了一位新客户以及有关该客户的信息。

    // Northwnd inherits from System.Data.Linq.DataContext.
    Northwnd nw = new Northwnd(@"northwnd.mdf");
    
    Customer cust = new Customer();
    cust.CompanyName = "SomeCompany";
    cust.City = "London";
    cust.CustomerID = "98128";
    cust.PostalCode = "55555";
    cust.Phone = "555-555-5555";
    nw.Customers.InsertOnSubmit(cust);
    
    // At this point, the new Customer object is added in the object model.
    // In LINQ to SQL, the change is not sent to the database until
    // SubmitChanges is called.
    nw.SubmitChanges();
    
    
    
    更新

    若要 Update 某一数据库项,首先要检索该项,然后直接在对象模型中编辑它。在修改了该对象之后,请对 DataContext 调用 SubmitChanges 以更新数据库。

    在下面的示例中,检索来自伦敦的所有客户。然后将其所在城市的名称从“London”更改为“London - Metro”。最后,调用 SubmitChanges 以将所做的更改发送至数据库。

    Northwnd nw = new Northwnd(@"northwnd.mdf");
    
    var cityNameQuery =
        from cust in nw.Customers
        where cust.City.Contains("London")
        select cust;
    
    foreach (var customer in cityNameQuery)
    {
        if (customer.City == "London")
        {
            customer.City = "London - Metro";
        }
    }
    nw.SubmitChanges();
    
    
    
    删除

    若要 Delete 某一项,请从其所属集合中移除该项,然后对 DataContext 调用 SubmitChanges 以提交所做的更改。

    说明说明

    LINQ to SQL 无法识别级联删除操作。如果要在对行有约束的表中删除行,请参见如何:从数据库中删除行 (LINQ to SQL)

    在下面的示例中,从数据库中检索 CustomerID98128 的客户。然后,在确认检索到客户行之后,调用 DeleteOnSubmit 以将该对象从集合中移除。最后,调用 SubmitChanges 以将删除内容转发至数据库。

    Northwnd nw = new Northwnd(@"northwnd.mdf");
    var deleteIndivCust =
        from cust in nw.Customers
        where cust.CustomerID == "98128"
        select cust;
    
    if (deleteIndivCust.Count() > 0)
    {
        nw.Customers.DeleteOnSubmit(deleteIndivCust.First());
        nw.SubmitChanges();
    }
    
  • 相关阅读:
    jar 反编译工具
    SpringBoot 中注解方式的拦截过滤
    jetty 启动项目在pom.xml 的配置
    java Exception 处理汇总
    mysql-覆盖索引
    程序员为何如此累
    启动centos 不带桌面
    Linux 和 Vim 常用命令整理
    How to Use tomcat on Linux
    Mac Book 问题汇集
  • 原文地址:https://www.cnblogs.com/shuzhengyi/p/1851070.html
Copyright © 2011-2022 走看看