ORM组件XCode(动手).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ORM组件XCode(动手)

ORM组件XCode(动手) 本篇才真正是XCode教程第一篇。《速览》是为了以最简洁的语言最短小的篇幅去吸引开发者;《简介》则是对XCode组件和XCode开发模式的一个整体介绍,让开发者从宏观的角度去理解XCode;《共舞》把XCode提到了一个新的高度,让开发者感受到它的贵族血统! 先抛出三篇来吸引人,再出《动手》,其实就是吊人胃口。如果到这里你还没有想试一试XCode的念头冲动,好吧,我承认是我的失败,不过你可以欺骗我,可别欺骗你自己! XCode开发模式建议先有数据库再有实体模型,然后借助代码生成器生成实体代码;当然你要反过来先做实体模型也是可以的,XCode之下的实体,支持反向生成数据库结构。 下面以《速览》中的UserMember为例,建立数据表: 数据表名: 用户 (UserMember) 中文名 英文名 数据类型 大小 是否主键 是否唯一 是否必填 默认值 编号 ID Int32 10 是 是 是 账号 Account String 50 显示名 DisplayName String 50 名称必须使用通俗易懂的英文单词全拼,常用的缩略词(如ID)除外 使用驼峰命名规则,每个单词首字母大写,其它小写名称必须简洁明了,不要加多余的前缀(如表名前加tbl),字段名也不要加表名前缀不得使用SQL关键字或C#关键字作为表名或字段名布尔型字段名称必须是IsAbb的形式字符串类型统一使用nvarchar,大文本使用ntext,除非特殊情况,否则不用其它文本类型建议给每张表建立一个自增的ID字段并作为主键,以利于数据分页管理建议给每张表和每个字段加上说明 点击连接,列出该库所有表和视图 设置命名空间、输出目录和连接名等信息,选择“数据”模版,点击生成 因为XCode是充血模型,使用的时候是不需要指定数据库连接的,所以实体类里面默认指定连接名。 XCode模型追求简单实用,所以没有区分数据层和业务层。但是XCode实体类有数据类和业务类的说法,刚才上面的“数据”模版生成的就是数据类,下面生成业务类 可以看出,数据类和业务类其实就是同一类,只不过使用了分部类partial,把一个类分拆到两个文件里面去。数据类记录表结构信息,基本上依靠于生成;业务类第一次生成后只有一些注释,用于引导开发者如何实现自己想要的功能。业务代码等人工编写的代码,都要求卸载业务类里面,当表结构改变需要重新生成代码时,仅生成数据类即可,人工编写的代码保留在业务类中,不至于被覆盖。 XCoder在输出目录生成了代码文件,复制到vs里面去 再看看例子代码 //新增数据,Save等效于Insert UserMember user = new UserMember(); user.Account = asdf; user.Save(); //user.Insert(); //ID作为自增字段,保存后自动设为新值 Console.WriteLine(user.ID); //查找数据,等效 user = UserMember.Find(Account, asdf); user = UserMember.Find(UserMember._.Account, asdf); user = UserMember.FindByAccount(asdf); user.DisplayName = 测试数据; //读取成员数据,等效 String str = (String)user[DisplayName]; str = user.DisplayName; //给成员赋值,等效 user.DisplayName = 测试数据; user[DisplayName] = 测试数据; //保存数据,等效 user.Save(); //user.Update(); Console.WriteLine(user.ID); user.Delete(); 编译,提示user = UserMember.FindByAccount(asdf)这句报错,没有FindByAccout方法。忘了这是我手工写的了 public static UserMember FindByAccount(String account) { return Find(_.Account, account); } 这个方法是根据账号查找用户。一般建议,FindByXxxx表示根据某个条件查询一个对象,FindAllByXxxx表示查询符合某个条件的所有对象的集合。 再次编译,通过。运行 又忘了,我们还没有设置连接字符串呢。增加连接字符串 add name=Test connectionString=Data Source=.;Initial Catalog=Test;Integr

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档