SubSonic Update

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

相关日志

没有相关日志

叫你丫64位

把生产/开发环境迁移到64位上大约已经有半年了,还未曾遇到过什么问题。今天却算小小的撞了一次墙。
金智的Idstar,给的库是COM+的DLL,用.NET库的工具包装一下就可以拿来给VS用,原来写的一个程序跑在Windows 2003(X86)下,大半年也挺好的。
后来直接把这个程序迁移到Windows 2008 (x64)下的IIS7上跑,似乎也没问题。拿到我自己机器上做开发测试,也没问题(Windows 7 X64)。
最近又需要用到Idstar做东西,本地OK,上了服务器怎么都报COMException,总之就是找不到CLSID。DLL注册了,注册表里有信息,OLE/COM Viewer看一切正常,权限一切正常,根本看不出任何异常的地方。
4小时候……
IIS7,程序池,高级设置,启用32位应用程序,False->True
DONE…

相关日志

Web Deployment Tool (0)

获取当前执行的Controller, Action, Parameters

ASP.NET MVC 的Action Filter中,有时需要做一些审计或者日志记录的工作,记录的对象自然是当前执行的Action。抽取信息的方法如下:
获得当前执行的Controller:

string controllerName = filterContext.Controller.GetType().Name;

获得当前执行的Action(两种方法):

string actionMethodName = filterContext.RouteData.Values["action"].ToString();

string actionMethodName = filterContext.ActionDescriptor.ActionName;

获得当前执行Action的参数,稍微复杂一些,因为参数是存在一个字典表里的:

if (filterContext.ActionParameters != null)

{

foreach (KeyValueP [...]

新的Visual Studio主题

被ReSharper的快捷键问题搞的有点恼火。现在的Visual Studio主题用了小半年了吧,来自于Rob Conery的TextMate Like主题,也有点倦了。正好,在琢磨MSpec和ReSharper整合的问题是,看到MSpec的作者使用的主题,非常的赞:

此Style来自VIM的一个叫做Wombat的Style,下载地址在此:点击
字体是Envy Code R Preview #7,下载地址在此:点击

相关日志

数据库的版本控制 (0)
Visual Studio 的好插件 - CodeRush Xpress (0)
Visual Studio 中的任务列表( ToDo List ) 支持 (0)
Thread of Day (0)
Thread of Day (0)

ASP.NET-MVC: new SelectList

SelectList sl = new SelectList( new[]{

new SelectListItem{ Text="one", Value="1", Selected=true},

new SelectListItem{ Text="two", Value="2"},

new SelectListItem{ Text="three", Value="3"}

}, "Text", "Value", "2" );

绕绕弯,搞不清怎么用集合初始化器来搞个数组(or集合)丢到SelectList的构造函数里面去,还好,有StackOverFlow和Google。
原文:How can i get this ASP.NET MVC SelectList to work?

相关日志

文抓:测试、ASP.NET MVC、IoC (0)
UrlRouting小实验 (0)
Thread of Day (2)
Thread of Day (0)
InfoQ:跟ASP. [...]

SCM Shock

无聊么?
想找S#arp看看,G到Codeplex的页面,进入看到首页提示,“为了对SVN更好的兼容性,我们将代码托管服务迁移到了Google Code”,点开Google Code的直链,红色的大字,“NOTICE!我们搬到GITHUB去啦”
S#arp确实很敏捷。
一直很想试试看Git,不过总是不得要领,等手上的项目搞完,试试看吧,即便还没有非常好的IDE integration。

相关日志

Thread of Day (2)

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 [...]

Visual Studio 的好插件 - CodeRush Xpress

CodeRush Xpress 是一款免费的 VS 插件。就权威的说法,比 ReSharper 快,比 RuSharp 好看,并且基础功能版是免费的。
这篇文章对 CodeRush 的特性做了介绍,CodeRush 自带的文档也很清晰,值得学习深入。

相关日志

新的Visual Studio主题 (0)
数据库的版本控制 (0)
Visual Studio 中的任务列表( ToDo List ) 支持 (0)
Thread of Day (0)
InfoQ:Visual Studio源代码控制包AnkhSVN 2.0介绍 (0)

数据库的版本控制

数据库的版本控制一直很头疼,毕竟数据库是二进制文件,传统的 CVS,SVN 对它一点办法都没有。据说 VSS 或者 Team Foundation 可能有数据库的版本控制方法,但毕竟没有试过,不大清楚。
Vitaly 的这篇博客介绍了使用 Visual Studio 2008 Team Suite 对 SQL Server 2000 以上数据库进行设计与管理的办法。因为在设计中 VS 会自己生成基于文本的 .sql 文件,所以就给 SVN 留下了同步的可能。
数据库的部署,单元测试,测试数据生成也是非常重要的功能,同样包含在内。

相关日志

新的Visual Studio主题 (0)
Visual Studio 的好插件 - CodeRush Xpress (0)
Visual Studio 中的任务列表( ToDo List ) 支持 (0)
Thread of Day (0)
InfoQ:Visual Studio源代码控制包AnkhSVN 2.0介绍 (0)