【发布时间】:2010-11-09 09:08:01
【问题描述】:
如果是这样的话,我认为是麻烦。
【问题讨论】:
-
能否请您发回更具描述性的问题陈述?
-
我不认为这是一个问题——只是一个陈述。
标签: c# asp.net subsonic subsonic-active-record
如果是这样的话,我认为是麻烦。
【问题讨论】:
标签: c# asp.net subsonic subsonic-active-record
更麻烦的是,编译时错误,因为您重命名了列或运行时错误“列 xyz 不存在”。
如果您想自己更改生成的类并且担心您的更改会被覆盖。可以通过三种方式对生成的 DAL 进行修改。
SubSonic 类是部分的。
如果您在同一个命名空间中创建另一个类,您可以添加属性/方法并覆盖成员(来自基类)。
修改模板。
根据 SubSonic 版本(2 或 3),生成 DAL 的方法不同。但它们都共享类似 aspx 的语法(2 = 自定义,3 = T4 引擎)
从类继承。
您可以创建自己的类来继承生成的类。 (如果你想使用 SubSonic2 的 xyzCollection,我不建议这样做。
更新:仅当您更改文件或右键单击 tt 文件并选择“运行自定义工具”时,才会执行 T4 (*.tt) 模板。对于 SubSonic,在架构更改后,您必须为要更新的每个 tt 文件(ActiveRecord.tt、Structs.tt 等)选择“运行自定义工具”。 但是,T4 是一个独立的工具,可以很容易地集成到您的构建过程中:
http://broloco.blogspot.com/2008/11/using-t4-command-line-parameters.html
【讨论】:
如果您使用的是 Subsonic,则每次修改数据库时都会重新创建模型(如果您使用的是构建提供程序,则会自动创建;如果您使用 Subsonic.exe 生成类,则手动创建)。
模型重新生成有什么问题?
【讨论】: