Subsonic 亚音速-如何创建业务逻辑层

Subsonic 亚音速-如何创建业务逻辑层,subsonic,subsonic3,subsonic2.2,subsonic2.0,Subsonic,Subsonic3,Subsonic2.2,Subsonic2.0,我不熟悉亚音速,通常这是编程,我通常从rad的角度开发,所以使用visual studio数据集设计器,但我想开始考虑开发n teir方法 我从来没有使用过业务逻辑层(naughy),通常我的代码隐藏负责验证,也就是说,也负责一般的页面级验证 我如何生成我的业务逻辑,我是否创建了我的一个类的部分类,然后将业务逻辑添加到这个类中?这看起来怎么样?只是为了让我有个主意 如有任何建议或建议,将不胜感激 谢谢 Dan亚音速的大gotchya是从数据库表生成类,两者之间有1对1的对应关系。这使得亚音速生成

我不熟悉亚音速,通常这是编程,我通常从rad的角度开发,所以使用visual studio数据集设计器,但我想开始考虑开发n teir方法

我从来没有使用过业务逻辑层(naughy),通常我的代码隐藏负责验证,也就是说,也负责一般的页面级验证

我如何生成我的业务逻辑,我是否创建了我的一个类的部分类,然后将业务逻辑添加到这个类中?这看起来怎么样?只是为了让我有个主意

如有任何建议或建议,将不胜感激

谢谢


Dan

亚音速的大gotchya是从数据库表生成类,两者之间有1对1的对应关系。这使得亚音速生成的类非常不适合用作业务对象,因为它会将业务层非常直接地绑定到数据库结构。这是一件坏事(无论如何,在我想到的几乎所有场景中)

亚音速是一种查询工具,仅此而已。它肯定不是ORM

考虑到这一点,我认为创建业务逻辑层的正确方法是编写您自己的业务类,并编写存储库类来管理数据的加载和存储。但仅在存储库类内部使用亚音速来处理数据到数据库的实际持久化

如果您在整个项目中使用亚音速生成的类,您会发现您很有可能做错了,对DB模式的第一次重大更改将很好地说明这一点(或者..不是很好)


事实上,我建议尽快学习真正的ORM,如NHibernate或实体框架。它们会让你在快乐的道路上走得更远,而亚音速仍然需要一个人自己完成大部分的数据层实现。

亚音速的最大缺点是它从数据库表生成类,两者之间有1对1的对应关系。这使得亚音速生成的类非常不适合用作业务对象,因为它会将业务层非常直接地绑定到数据库结构。这是一件坏事(无论如何,在我想到的几乎所有场景中)

亚音速是一种查询工具,仅此而已。它肯定不是ORM

考虑到这一点,我认为创建业务逻辑层的正确方法是编写您自己的业务类,并编写存储库类来管理数据的加载和存储。但仅在存储库类内部使用亚音速来处理数据到数据库的实际持久化

如果您在整个项目中使用亚音速生成的类,您会发现您很有可能做错了,对DB模式的第一次重大更改将很好地说明这一点(或者..不是很好)


事实上,我建议尽快学习真正的ORM,如NHibernate或实体框架。它们让您在快乐的道路上走得更远,而亚音速仍然需要一个人自己来完成大部分数据层实现。

嗨,Qstarin,也许我的问题不是要澄清,基本上我想创建一些业务逻辑来形成基于,我知道我可以在基于最初生成的类的部分类中实现这一点,但我想知道如何/在何处实现这一点。如果不符合验证或业务规则,我是否可以拦截和停止插入前、删除前等自定义事件?嗨,Qstarin,也许我的问题不是要澄清,基本上我想创建一些业务逻辑来形成验证,我知道我可以在基于最初生成的类的部分类中实现这一点,但我想知道如何/在何处实现这一点。是否有自定义事件,如插入前、删除前等,如果不符合验证或业务规则,我可以拦截并停止这些事件??