//My解决方案结构: //My // NetTiers // - My.Data等(.NetTiers生成的数据提供层) // - My.Service(.NetTiers生成的数据服务层。其中为它加入了自己的Partial类以增加额外功能) // WelcomeServiceBase.generated.cs // WelcomeService.generated.cs // WelcomeService.cs(.NetTiers生成的) // -Partial(自己写的Service分部类全都组织在Partial目录中,这样每次重新使用.NetTiers生成框架成,只需要备份还原此目录即可。另外在VS中设置此目录的属性“Namespace Provider”为“false”) // WelcomeService.cs(自己写的) // - My.Facade(自己写的外观功能层) // WelcomeFacade.cs // - My.View(自己写的视图层) // Program.cs //---------------------------------NetTiers生成的工程开始------------------- //...其它一些工程,如My.Data等 //-----My.Serivce工程开始 //WelcomeServiceBase.generated.cs文件: namespace My.Serivce { public partial class WelcomeServiceBase { public string Out() { return "您好!"; } } } //My.Serivce.cs文件: namespace My.Serivce { public partial class WelcomeService : WelcomeServiceBase { } } //Partial/My.Serivce.cs文件 namespace My.Serivce { public partial class WelcomeService { //若要操作数据库中的数据,即使只是读数据,一定使用事务,在方法中“探测当前ConnectionScope中有无现成的事务管理器,有则借用,无则创建”的方式。 //这样可保证数据的一致性,也可避免在作一系列操作时,当上层操作自己创建事务将数据锁住时,下层无法访问数据(即使是读取)。 //遵循一点:只在一系列连续的、相关的操作的最起始创建事务管理器,并将此事务管理器在这些操作中进行传递,完成整个事务的操作后,在系列操作的末尾将事务进行提交或回滚,最终回收事务管理器。 public string Out(string name) { return string.Format("您好,{0} !", name); } } } //-----My.Serivce工程结束 //---------------------------------NetTiers生成的工程结束------------------- //---------------------------------自己写的工程开始------------------------- //---------My.Facade工程开始 WelcomeFasade.cs文件: namespace My.Facade { public partial class WelcomeFasade { //若要操作数据库中的数据,即使只是读数据,一定使用事务,在方法中“探测当前ConnectionScope中有无现成的事务管理器,有则借用,无则创建”的方式。 //这样可保证数据的一致性,也可避免在作一系列操作时,当上层操作自己创建事务将数据锁住时,下层无法访问数据(即使是读取)。 //遵循一点:只在一系列连续的、相关的操作的最起始创建事务管理器,并将此事务管理器在这些操作中进行传递,完成整个事务的操作后,在系列操作的末尾将事务进行提交或回滚,最终回收事务管理器。 public static void Say(string name) { var welcomeService = new WelcomeService(); var words = welcomeService.Out(name); Console.WriteLine(words); } } } //---------My.Facade工程结束 //---------My.View工程开始 namespace My.View { class Program { static void Main(string[] args) { Console.WriteLine(new WelcomeServiceBase().Out());//调用类WelcomeServiceBase(NetTiers生成的WelcomeServiceBase.generated.cs文件)提供的方法 Console.WriteLine(new WelcomeService().Out());//调用类WelcomeService(NetTiers生成的WelcomeService.cs文件)提供的方法 Console.WriteLine(new WelcomeService().Out("张三"));//调用WelcomeServicePartial.cs(自己写的,并放在ServiceLayer层中的)提供的方法 WelcomeFasade.Say("张三"); } } } //---------My.View工程结束 //---------------------------------自己写的工程结束-------------------------