Linq to SQL (ALinq) 也来AOP

简介

ALinq Inject 是我的又一开源项目,之前已经开源了两个作品:

ALinq Fluent

ALinq Dynamic

这两个开源项目都是托管在 CodePlex 上,而 ALinq Inject 是我本年度的第三个开源项目了。这个项目,我花了几个月的时间去构思,然后再花了差不多一个月的时间去编写,非常不容易,如果你对此感兴趣,请点击一下推荐按钮,也就举手之劳。

在 Linq to SQL 上使用 AOP 有什么好处?好处太多了。下面列举几个常见的应用情景,在这些情景中,应用AOP,可以使用代码更为优雅。

1、数据的验证

2、操作日志

3、数据更新的记录。

特点

简单易用,服务器空间,ALinq Inject 目前能够注入到添加、删除、更新、验证四个方法,下一步将支持查询的注入。

使用

1、Linq to SQL 用户,引用System.Data.Linq.Inject.dll 程序集,如果是 ALinq 用户,则引用 ALinq.Inject.dll 。

2、编辑HandlerAttribute 的继续类,实现注入。如下:

class LoggerAttribute : HandlerAttribute{OnUpdateBegin(object entity, HandlerArguments args){Console.WriteLine();}OnUpdateSuccess(object entity, HandlerArguments args){Console.WriteLine();}OnUpdateFail(object entity, HandlerExceptionArguments args){Console.WriteLine();Console.WriteLine(args.Exception.Message);args.Processed = true;Console.WriteLine();}OnUpdateEnd(object entity, HandlerArguments args){Console.WriteLine();}}

3、在 DataContext 上类上,美国服务器,加上 LoggerAttribute

[Logger]partial class NorthwindDatabase{}

4、使用 InjectMappingSource 类,替代原来的 MappingSource(AttributeMappingSource 或 XmlMappingSource)

var mappingSource = new InjectMappingSource();var db = new NorthwindDemo.NorthwindDatabase(conn, mappingSource){Log = Console.Out};var c = db.Categories.First();c.CategoryName = c.CategoryName + ;db.SubmitChanges();

5、运行后输出的结果

., ., ., .– @p1: Input String (Size = 0; Prec = 0; Scale = 0) [Beveragesxxxx]–Success

从输出的结果可以看得到,已经成功注入了。点击这里下载 ALinq Inject 点击这里下载示例

感兴趣的朋友,请点击推荐(举手之劳,哥写这个框架可是几个月呀),推荐数超过 100 了,网站空间,我就继续发详细的教程,还有代码。

别想一下造出大海,必须先由小河川开始。

Linq to SQL (ALinq) 也来AOP

相关文章:

你感兴趣的文章:

标签云: