SubSonic Update

Update一个实体,总提示某个Field值未设置,而这个Field我并没有去修改(应该保持原值。
看了一下SubSonic T4生成的代码,发现SubSonic对实体的Track相对比较简单。我所修改的实体已经在2个视图里打过一圈转了,SubSonic早就不认识它啦。
简单的解决办法也有,但是感觉很Dirty:
在Action里修改好实体(不修改的Field就别动它),给实体的SetIdLoaded方法传入true作为参数,然后丢给BLL里的Save方法,在Save方法里根据ID把数据库里的原实体取出来,根据传入的已修改实体,修改原实体的值,最后Update。
应该有更好的办法,起码我知道EF里有

相关日志

没有相关日志

SubSonic Tips

SQL Server 视图的生成
SubSonic的T4脚本,默认是不检查视图的,要想改变这一点,只需将“SQLServer.tt”文件中的:

const string TABLE_SQL=@"SELECT *
    FROM  INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE='BASE TABLE'";

改成

const string TABLE_SQL=@"SELECT *
    FROM  INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE='BASE TABLE'
        and table_name not like '%aspnet_%'
    unio [...]

SubSonic 2.0 简单配置

1、引用 SubSonic.dll;
2、在 web.config 文件里插入配置串,共三处:

<configSections>

<section name="SubSonicService"

type="SubSonic.SubSonicSection, SubSonic"

requirePermission="false"/>

</configSections>

<connectionStrings>

<add name="Northwind"

connectionString="Data Source=localhost\SQLExpress; Database=Northwind; Integrated Security=true;"/>

</connectionStrings>

<SubSonicSe [...]