AutoPoco的使用
官方开发指导https://autopoco.codeplex.com/documentation
初步使用:
SimpleUser是自己要批量创建的类
1)创建管理工厂
IGenerationSessionFactory factory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType<SimpleUser>(); });
2) 从工厂中创建会话
IGenerationSession session = factory.CreateSession();
3) 使用会话创建集合,List中的100表示创建含一百个元素的集合,创建的时候并没对集合中的元素进行赋值。
SimpleUser user = session.Single<SimpleUser>().Get(); List<SimpleUser> users = session.List<SimpleUser>().Get();
在初步的基础上进行赋值
session.List<SimpleUser>() .First() .Impose(x => x.FirstName, "Rob") .Impose(x => x.LastName, "Ashton") .Next() .Impose(x => x.FirstName, "Luke") .Impose(x => x.LastName, "Smith") .All().Random() .Impose(x => x.Role,roleOne) .Next() .Impose(x => x.Role,roleTwo) .Next() .Impose(x => x.Role, roleThree) .All() .Invoke(x => x.SetPassword("Password1")) .Get();
测试发现:
1、Next方法必须在First 或者Random使用之后才能使用,并且First只能使用一次在没调用All方法之前,First、Random、Next使用完之后必须调用All方法;
2、每次只能为一个属性赋值;
从数据源中创建
mFactory = AutoPocoContainer.Configure(x => { x.Conventions(c => { c.UseDefaultConventions(); }); x.AddFromAssemblyContainingType<SimpleUser>(); x.Include<SimpleUser>() .Setup(c => c.EmailAddress).Use<EmailAddressSource>() .Setup(c => c.FirstName).Use<FirstNameSource>() .Setup(c => c.LastName).Use<LastNameSource>() .Invoke(c => c.SetPassword(Use.Source<String, PasswordSource>())); x.Include<SomeType>() .Setup(c => c.SomeString).Use<RandomStringSource>(,); });
Use中的泛型就是传递给集合元素实例数据源,是个类。该类必须继承抽象泛型类DatasourceBase<T> 泛型T表示对应属性的数据类型。该抽象类中只有一个抽象方法Next,该方法就是返回数据给属性,实现给属性赋值。从而达到数据绑定;
在Conventions中实现数据源绑定
For example
A convention to set all String EmailAddress properties to use the EmailAddressSource public class EmailAddressPropertyConvention : ITypePropertyConvention { public void Apply(ITypePropertyConventionContext context) { context.SetSource<EmailAddressSource>(); } public void SpecifyRequirements(ITypeMemberConventionRequirements requirements) { requirements.Name(x => String.Compare(x, "EmailAddress", true) == ); requirements.Type(x => x == typeof(String)); } } A convention to set all String EmailAddress fields to use the EmailAddressSource public class EmailAddressFieldConvention : ITypeFieldConvention { public void Apply(ITypeFieldConventionContext context) { context.SetSource<EmailAddressSource>(); } public void SpecifyRequirements(ITypeMemberConventionRequirements requirements) { requirements.Name(x => String.Compare(x, "EmailAddress", true) == ); requirements.Type(x => x == typeof(String)); } } x.Conventions(c => c.Register(typeof(IdPropertyConvention))); x.AddFromAssemblyContainingType<SimpleUser>();
在context中有个Setvalue方法 ,应该是给绑定数据源传值的,测试使用的时候并没有效果,传递多个值理论是使用的数组。问题未解决。
AutoPoco的使用的更多相关文章
- .Net程序员飞扬有用的85个工具
1.Visual Studio Visual Studio Productivity Power tool:Visual Studio专业版(及以上)的扩展,具有丰富的功能,如快速查找,导航解决方案, ...
- 实用的VS工具
工具 1.Visual Studio Visual Studio Productivity Power tool:Visual Studio专业版(及以上)的扩展,具有丰富的功能,如快速查找,导航解决 ...
- 对ASP.NET程序员非常有用的85个工具
介绍 这篇文章列出了针对 ASP.NET 开发人员的有用工具. 工具 1. Visual Studio Visual Studio Productivity Power tool:Visual Stu ...
- 推荐几个对Asp.Net开发者比较实用的工具
推荐几个对Asp.Net开发者比较实用的工具.大家有相关工具也可以在评论区留言,一起努力学习. 工具 1.Visual stdio Productivity Power tool:visual std ...
- .Net开发工程师工具箱
Visual Studio Visual Studio Productivity Power tool:Visual Studio专业版(及以上)的扩展,具有丰富的功能,如快速查找,导航解决方案,可搜 ...
- asp.net 工具
http://www.jb51.net/article/92465.htm 这篇文章列出了针对ASP.NET开发人员的有用工具. 工具 1.Visual Studio Visual Studio Pr ...
随机推荐
- HTML5 - HTML5 postMessage API 注意事项
一:发送 window.postMessage("Hello, world", "http://127.0.0.1:8080"); 注意,必须要加上http:/ ...
- Nltest
查看登陆到的DC:
- VS里面如何设置环境默认的开发语言
- Codeforces Gym 100418A A - A+-B java高精度
A - A+-BTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.acti ...
- C++ BackColor_Dialog
相关主题 1. 用纯色 设置对话对话框的背景色 2. 用位图 设置对话对话框的背景色 3. 使用Picture Ctrl来设置背景图片 对话框背景色 其他相关 CColorDi ...
- HDU 1080 DP
匹配两个人相似度. A,G,C.T.每两个都会有一个相应的值,给出两串基因.长度能够不一样,能够在基因中间加_使两串长度一样.然后有一个相应值.求最大相应值. 先做出相应的表 DP方程: x=dp[i ...
- [Javascript] Either Functor
Either Functor: // API Right(val) // resolve the value Left(val) // return error message Examples: m ...
- ABAP OO的八大理由
原贴地址:http://scnblogs.techweb.com.cn/abaplv/archives/127.html 几年前SAP BASIS 4.6为ABAP扩展了OO功能,这是很多传统的ABA ...
- Redis 有序集合(sorted set)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序 ...
- cocos2d-x中使用Http
一.如何使用 //发送接口 void CmdHelper::postRequest(const char* cmdTag, const char* url, const char* postData, ...