Code
查询
SubSonic2.1版本 – 例出3种查询。
Product product = new Select().From<Product>()
              .Where(Product.ProductIDColumn).IsEqualTo(4)
  .ExecuteSingle<Product>();
Product product = DB.Select().From<Product>()
  .Where("ProductID").IsEqualTo(4)
  .ExecuteSingle<Product>();
Query query = new Query(Product.Schema);
query.WHERE("ProductID=4").ORDER_BY("ProductID asc");
IDataReader dr = Product.FetchByQuery(query);
DataSet product = new   Query(Product.Schema).WHERE("ProductID=4").
  ORDER_BY("Prod  uctID asc").ExecuteDataSet(); 
  
关联查询
DataSet product = new Select(
  Product.ProductNameColumn,
  Category.CategoryNameColumn
  ).From<Product>()
  .InnerJoin(Category.CategoryIDColumn, Product.CategoryIDColumn)
  .Where(Category.CategoryIDColumn).IsGreaterThan(4)
  .ExecuteDataSet(); 
注意. InnerJoin(f2, f1) 的使用方法。
分页查询
List<Product> products = new Select().From<Product>()
    .Where(Product.ProductIDColumn).IsEqualTo(4)
    .Paged(1, 30)
    .ExecuteTypedList<Product>();
  
查询—返回对象
ExecuteReader();   返回DataReader 
ExecuteScalar();   返回对象
ExecuteScalar<string>();  返回泛型对象
ExecuteSingle<Product>(); 返回表实体对象
ExecuteTypedList<Product>();  返回泛型表实休数据集
ExecuteDataSet();  返回DataSet 
ExecuteJoinedDataSet<强数型数据集>(); 返回关联查询 DataSet 
Execute(); 返回执行后,数据更新条数
  
SQL关键词
IsEqualTo(obj) // 等于 value
IsBetweenAnd(obj1, obj2) // [字段1] BETWEEN 值1 AND 值2
StartsWith  // LIEK '1%‘ 
EndsWith    // LIEK '%1‘
IsGreaterThan // [字段1] > 值1
IsGreaterThanOrEqualToIsGreaterThan // [字段1] >= 值1
IsLessThan // [字段1] < 值1
IsLessThanOrEqualToIsLessThan // [字段1] <= 值1
WhereExpression / AndExpression // Expression 表示括号
C#:
.Where("1").IsGreaterThan(1)
  .And("2").IsGreaterThanOrEqualTo(2)
  .AndExpression("3").IsLessThan(3)
  .AndExpression("4").IsLessThanOrEqualTo(4).And("5").StartsWith("5")
  .AndExpression("6").EndsWith("6")
  .ExecuteSingle<Product>();
SQL:WHERE 1 > @1AND 2 >= @2 AND (3 < @3) AND (4 <= @4 AND 5 LIKE @5) AND (6 LIKE @6)
  
修改
Product product = new Product(4);
product.ProductName = "amo";
product.Save();
int i = new Update(Product.Schema)
  .Set(Product.ProductNameColumn).EqualTo("Chai -- Amo")
  .Where(Product.ProductIdColumn).IsEqualTo(1)
  .Execute();
  
添加
Product product = new Product();
product.ProductName = "my xiaoli";
product.SupplierID = 1;
product.CategoryID = 1;
product.Discontinued = true;
//
product.Save();
int i = new Insert().Into(Product.Schema,
  "ProductName", 
  "SupplierID", 
  "CategoryID", 
  "Discontinued“
)
.Values("my amo", 1, 1, 1).Execute();
  
删除
int i = new Delete ().From<Product>()
  .Where(Product.ProductIDColumn). IsEqualTo(1)
  .Execute();
  
事务1
 List<Insert> queries = new List<Insert>();
 queries.Add(new Insert().Into(Product.Schema).Values("product1"));
 queries.Add(new Insert().Into(Product.Schema).Values("product2"));
 queries.Add(new Insert().Into(Product.Schema).Values("product3"));
 queries.Add(new Insert().Into(Product.Schema).Values("product4"));
 queries.Add(new Insert().Into(Product.Schema).Values("product5"));
 queries.Add(new Insert().Into(Product.Schema).Values("product6"));
 queries.Add(new Insert().Into(Product.Schema).Values("product7"));
 //execute in a transaction 
 SqlQuery.ExecuteTransaction(queries);
事务2
using (SharedDbConnectionScope sp = new SharedDbConnectionScope())
{
    using (TransactionScope scope = new TransactionScope())
    {
        // coding.
        scope.Complete();
    }

  
减少对ActiveRecord的依赖 
MyProduct product = new Select(
  Product.ProductNameColumn, 
  Category.CategoryNameColumn
    ).From<Product>()
   .InnerJoin(Category.CategoryIDColumn, Product.CategoryIDColumn)
   .Where(Category.CategoryIDColumn).IsGreaterThan(4)
   .ExecuteSingle<MyProduct>();
string cname = product.CategoryName; 
string pname = product.ProductName;
  
自定义MyProduct实体类 
 public class MyProduct : ActiveRecord<MyProduct> {
        public string CategoryName {
            get { return GetColumnValue<string>(Category.Columns.CategoryName); }
            set { SetColumnValue(Category.Columns.CategoryName, value); }
        }
        public string ProductName {
            get { return GetColumnValue<string>(Product.Columns.ProductName); }
            set { SetColumnValue(Product.Columns.ProductName, value); }
        }
    }

转载于:https://www.cnblogs.com/yuanqiang/archive/2009/03/26/1422393.html

Subsonic 基本使用相关推荐

  1. Subsonic设置--新手上路

    前言 在刚开始使用中就碰到问题:按照官方的方法配置,总是不能编译时自动生成数据访问层代码(其中一种,也可使用命令行自己生成,下面介绍).本文只要介绍了这两种配置subsonic的方法. 1.配置方法 ...

  2. Subsonic使用中

    使用中,遇到各种奇葩问题,依依汇总. 1.引用了Subsonic层后,一运行就开始报错,提示未能找到文件!!    //引用后,目标框架可能会被改变,subsonic的默认框架是2.0,请检查框架是否 ...

  3. subsonic mysql_Subsonic 介绍

    SubSonic:一个数据层构建器(BLL) 导言 一 个易维护的应用程序,不同的类之间有不同的分工,通常分为界面层.业务层和数据访问层.虽然这一技术有利于更好地组织应用,一些开发人员不愿这么做.创建 ...

  4. SubSonic数据库操作

    1.   选择:Select a.  表格多项查询 DataSource=DB.Select().Form(TableA).Where(TableA.ColName) .IsEqualTo(" ...

  5. SubSonic中RecordBaseT.Load(IDataReader dataReader)与LoadAndCloseReader(IDataReader dataReader)的使用区别...

    一般情况下使用LoadAndCloseReader(IDataReader dataReader) 如果要使用Load需要自己定位记录集游标到一个有效果位置 如 User user=new User( ...

  6. SubSonic中的字段付值--MakeOld Update

    根据设计当MakeOld后(在读取数据库后,或者手动调用),对记录(SubSonic生成的类)属性附值时,Sonic会检测这个Value是否与原来的不同,只有值不同时才会附值成功,并将该列添加到Dir ...

  7. SubSonic框架使用图解

    简介:SubSonic框架是一个优秀的.开源的ORM映射框架,同时提供符合自身需要的代码生成器. 官方下载地址:http://www.subsonic.org/pages/download.jsp 明 ...

  8. subsonic 配置及使用

    就是这么简单-没有必要关心要那些表或配置表和对象的映射关系.在实践中,配置看起来如下: <configuration> <!-- 1 - Connection String(s) - ...

  9. subsonic 3.0 mysql_SubSonic 3.0新特性

    1.引言 大多数数据访问程序包提供从"数据库外"访问,意思是这种方式将您的数据库的表在应用程序中用对象表示.这种方式可以在大多数案例中工作,但是关系理论与面向对象编程将变的不一致, ...

  10. SubSonic:一个对象的引用是必需的对于非静态字段

    昨天配置完SubSonic,生成网站时冒出来一个莫名其妙的问题: 一个对象的引用是必需的对于非静态字段,方法或属性'xxx.dnt_usergroups.System.get 很奇怪!打开报错的文件看 ...

最新文章

  1. Nature子刊:残留DNA在土壤中含量丰富并且模糊了对土壤生物多样性的估计
  2. R语言构建catboost模型:构建catboost模型并基于网格搜索获取最优模型参数(Select hyperparameters)、计算特征重要度
  3. java tcp端口复用_windows server tcp端口重用问题
  4. mysql 列累加计算
  5. 那些年做的学术公益-你不是一个人在战斗
  6. 四十八、使用Python和Stata完成广西碳酸钙企业的主成分分析和因子分析
  7. GCC选项_-Wl,-soname
  8. python treeview底部加个按钮_Python爬取京东商品信息(GUI版本)
  9. Nancy跨平台开发总结(六)三层架构之Token认证的Rest API
  10. avd android 5.1,Kotlin开发进阶
  11. 趣学python编程教孩子学编程_趣学Python——教孩子学编程
  12. 新零售业背景下实体店的经营战略
  13. python中extend什么意思_python中extend是什么意思
  14. python中常用于输出信息的语句函数是print括号_第十四课我们研究一下常用的print()函数,翻看了一下Python宝典...
  15. CSS的2D旋转效果
  16. 深信服超融合技术架构(重点介绍主要模块)
  17. 认识路由器与交换机,在常见的企业组网中起什么样的作用呢?
  18. MindMaster支持全平台、云储存的思维导图工具
  19. `英语` 2022/8/25
  20. 事件监听的理解(ActionListener等)

热门文章

  1. iOS 开发_..和self...的区别以及使用
  2. Objective C 链式调用
  3. MongoDB整理笔记の管理Replica Sets
  4. 共用体的定义和应用【C++】
  5. SQL Server中的GAM页和SGAM页
  6. CSV-03- csv 读写框架支持数组、Map、Collection 等常见集合
  7. 自适应滤波:最小二乘法
  8. iptables从入门到放弃
  9. 使用GDAL创建Erdas格式的金字塔
  10. 管理信息系统大作业范例(C#编写)