Shenjk

天地生人,有一人应有一人之业;人生在世,生一日当尽一日之勤

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  20 随笔 :: 1 文章 :: 24 评论 :: 0 引用

2010年8月16日 #

问题简单描述:discriminator 对应的列如何映射,如果不做映射,discriminator对应的列的内容读取不到,如果做了,插入数据不正确。详细如下:

 

先看Order 和 Invoice的配置文件:

 

Order是一个聚合根,保存Invoice(发票)信息,理论上都应该通过Order进行操作,那么我们再看Order的仓储:

 

代码
  public void Store(Order order)
        {
            ISession session 
= Session;           
            
try
            {
                session.Clear();
                session.Save(order);
                session.Flush();
              
            }
            
catch (Exception ex)
            {
                Console.Write(ex.Message);               
            }
            
finally
            {               
            }
        }

 

我进行Order的插入操作,同时插入Invoice

 

代码
            Guid id = Guid.NewGuid();
            Order order 
= new Order()    {
                ID 
= id,
                Code 
= DateTime.Now.ToString()  
            };
            order.Invoice 
= new InvoiceEnterprise() { ID = order.ID, InvoiceType = InvoiceType.NormalEnterprise, EnterpriseName = "test", Content = "明细" };

            IOrderRepository orderRepository 
= RepositoryFactory.Get<IOrderRepository, Order>();

            orderRepository.Store(order);

 

测试结果正常,能正常插入数据,

我们再看看读取数据:

 

代码
 IOrderRepository orderRepository = RepositoryFactory.Get<IOrderRepository, Order>();

            Order order 
= orderRepository.FindById(new Guid("718523d4-f794-4cad-8c5b-d2e76c9eedee"));
            
            Console.WriteLine(
"InvoiceType="+((int)order.Invoice.InvoiceType).ToString());

 

测试结果显示:InvoiceType=0 而数据库里,很明显是1,无论数据库里是什么,都未能映射到 InvoiceType

 

那么我就对 InvoiceType 进行映射吧:

再做一次测试,发现插入数据时: 

此 SqlParameterCollection 的 Count=3 的索引 3 无效。

 

显然是 InvoiceType做了多余的映射,

 

查询数据结果:

InvoiceType=1

 

查询结果是正确的。

 

经过上面的测试,我就迷糊了,不知道怎么配置,才能让插入和查询都能正常呢?

posted @ 2010-08-16 12:03 shenjk 阅读(277) 评论(1) 编辑

2010年7月21日 #

淘宝关键词排名查询工具 是一款辅助淘宝卖家管理关键词排名的工具,集查询和统计分析于一身;帮助卖家更好的分析设置关键词。

 

该软件界面清晰,操作简单:

 

 

 

 

该软件基于 .Net Framework SDK 2.0 开发,如果您的电脑没有安装.net sdk2.0 请到微软官方网站下载: 

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5 

 安装.net sdk 2.0以后在运行本软件:

 下载地址:http://www.shenjk.com/air/TaobaoKeywordRank_R.rar

 

如果您有意见和建议,请在评论中提出。

 

顺便广告:

 

 

posted @ 2010-07-21 09:32 shenjk 阅读(455) 评论(0) 编辑

2010年5月25日 #

代码
        new Ext.form.ComboBox({
            id: 
'mycmb',
            typeAhead: 
true,
            triggerAction: 
'all',
            mode: 
'local',
            valueField: 
'ID',
            displayField: 
'Name',
            value: 
'5307',//设置值            
            store: new Ext.data.JsonStore({
                proxy: 
new Ext.data.HttpProxy({
                    method: 
'GET',
                    url: 
'GoodsList.aspx'//相对路径
                }),
                fields: [{ name: 
'ID' }, { name: 'Name'}],
                root: 
'data',
                autoLoad: 
true
            }),
            listeners: {
                render: 
function(cmb) {
                    
var store = this.getStore();
                    store.on(
'load'function() { cmb.setValue(cmb.getValue()); }, this); //初始化显示
                }
            }

        })

 

http://www.webexpoer.com

posted @ 2010-05-25 17:53 shenjk 阅读(319) 评论(0) 编辑

http://www.webexpoer.com/

 

代码
Ext.form.ComboBoxTree = Ext.extend(Ext.form.ComboBox, {
    store: 
new Ext.data.SimpleStore({ fields: [], data: [[]] }),
    editable: 
false,
    shadow: 
false,
    mode: 
'local',
    triggerAction: 
'all',
    maxHeight: 
200,
    selectedClass: 
'',
    onSelect: 
null,
    canCollapse: 
true,
    constructor: function(_cfg) {
        
if (_cfg == null) {
            _cfg 
= {};
        }
        Ext.apply(
this, _cfg);
        
this.treerenderid = Ext.id();
        
this.tpl = String.format('<tpl for="."><div style="height:200px"><div id="ext-combobox-tree{0}"></div></div></tpl>'this.treerenderid);
        Ext.form.ComboBoxTree.superclass.constructor.apply(
this, arguments);
        
if (this.tree) {
            var cmb 
= this;
            
this.tree.on('click', function(node) {
                cmb.canCollapse 
= false;
                
if (node.isLeaf()) {
                    cmb.canCollapse 
= true;
                    
if (Ext.isFunction(cmb.onSelect)) {
                        cmb.onSelect(cmb, node);
                    } 
else {
                        cmb.setValue(node.text);
                    } cmb.collapse();
                }
            });
            
//以下事件,让combobox能正常关闭
            this.tree.on('expandnode', function() { cmb.canCollapse = true; });
            
this.tree.on('beforeload', function() { cmb.canCollapse = false; });
            
this.tree.on('beforeexpandnode', function() { cmb.canCollapse = false; });
            
this.tree.on('beforecollapsenode', function() { cmb.canCollapse = false; });
        }
        
this.on('expand'this.expandHandler, this);
        
this.on('collapse'this.collapseHandler, this);
    },
    expandHandler: function expand() {
        
this.canCollapse = true;
        
if (this.tree) {
            
this.tree.render('ext-combobox-tree' + this.treerenderid);
            
this.canCollapse = true;          
            
this.tree.getRootNode().expand();
            
        }
    },
    collapseHandler: function collapse() {
        
if (!this.canCollapse) {
            
this.expand();
        }
    }

});

 

 

示例:

http://www.webexpoer.com/

代码
new Ext.form.ComboBoxTree({
            tree: 
new Ext.tree.TreePanel({
                root: 
new Ext.tree.AsyncTreeNode({ text: '--选择--', id: '0' }),
                rootVisible: 
false,
                border: 
false,
                dataUrl: 
'/AreaList.aspx',
                listeners: {
                    beforeload: 
function(n) { if (n) { this.getLoader().baseParams.id = n.attributes.id; } }
                }
            })
/*,
            onSelect: function(cmb, node) {
                alert(node.attributes.text);
            }
*/
        })

 

 

posted @ 2010-05-25 14:12 shenjk 阅读(342) 评论(0) 编辑

代码
        new Ext.form.ComboBox({
            id: 
'mycmb',
            hiddenName: 
'hiddenid',
            typeAhead: 
true,
            triggerAction: 
'all',
            
//  mode: 'remote',
            valueField: 'ID',
            displayField: 
'Name',
            hiddenValue: 
5307,
            value: 
'清华紫光 M87 鼠标',
            store: 
new Ext.data.JsonStore({
                proxy: 
new Ext.data.HttpProxy({
                    method: 
'GET',
                    url: 
'/list.aspx'     
           }),
                fields: [{ name: 
'ID' }, { name: 'Name'}],
                root: 
'data'/**/,
                autoLoad: 
true,
                listeners: {
                    load: 
function(store, records, options) {
                         Ext.getCmp(
'mycmb').setValue(5307);
                    }
                }
            })
        })

 

http://www.webexpoer.com

posted @ 2010-05-25 14:09 shenjk 阅读(97) 评论(0) 编辑

2010年5月24日 #

public class class1{
	public void test(){
		int i=0;
	}
}
posted @ 2010-05-24 23:00 shenjk 阅读(3) 评论(0) 编辑

终于开了个淘宝服饰店 http://t163.taobao.com 暂时上了一部分女装,其它商品将陆续上架

posted @ 2010-05-24 22:46 shenjk 阅读(28) 评论(0) 编辑

2009年9月23日 #

当提倡国货声中,广告上已有中国的“自造舶来品”,便是一个证据。
——鲁迅《伪自由书|从幽默到正经》

本文提到的产品经理,一般指网络产品经理。

产品经理是个算是舶来品,在传统的中国式经营中,有东家,有掌柜,有账房先生,有掌勺师傅,有跑堂的伙计,有学徒,没有“产品经理”;要给产品经理验明正身,就要从产品说起;产品就是菜式,菜单真的是由掌勺师傅发起?菜单一定要经过东家的确认?最近总是看到产品经理在抱怨工作氛围与合作环境,大多是“不被理解”或者“不能左右”,那么,是不是这期间真的产生了什么问题?我们尝试的去分析一个合格的产品经理所处的位置和境遇。

说文解字:从产品说起

随便搜索一下“什么是产品”都等得到一些冠冕堂皇的答案。在大规模协作的今天,不可能在自留地里生产食物,用自造的锅铲把它们弄熟;从产业的角度,产品是流程产物,也就是来自不同部门、不同职位、甚至不同公司的原材料,通过生产工艺加工出来的结果;对于万维网产品,则是一项彻底的工程活动

产品本身的价值,是满足人们的需要,这个价值不是商业价值;产品要套现,就要变成商品,这个概念很重要;不是所有的产品都要变成商品,公益的、非盈利的、公共属性的产品随处可见。

产品的特质分析中不难发现,产品经理貌似是不需要对商业负责的,他们只需要实现产品的价值——满足用户需求,就OK咯;这就好比掌勺师傅只需要炒出让食客满意的菜肴,而根本不必关心它们是否赚钱

真实的情况是,产品经理往往因为产品销售的不利而背负巨大的压力,这是抱怨的原因之一。

产品经理的艰难定位

Product Manager产品经理,哈,Manage这个动词在英语里包含丰富的意义,看来这个舶来品还真不简单。

Manage不是Create

产品的创建不应该是产品经理的任务;那么我们是否肯定马花藤是QQ的产品经理?李宴宾是摆渡的产品经理?盯儡是网艺的产品经理?当然你这么理解也未尝不可。但是你要明确:麻晕不是掏宝的产品经理,张炒洋也不是馊壶的产品经理……决策产品是否创建,绝对不是一个产品经理能够决定的;炒菜的师傅很难决定菜单上有什么,除非他自己是东家。

Manage不是Marketing

产品的营销不应该是产品经理的任务;那么我们是否可以肯定产品经理不用对利润负责?产品经理每天要忙着处理大小订单?产品经理也要知道财务报表?可是,访问注册量指标能够仅仅依靠良好的用户体验去实现么?现在可不是那种“好酒不怕巷子深”的年代啦。

Manage不是Maintenance

生产流程不应该是产品经理的任务;那么是不是每个生产工艺都需要产品经理去Flow?半成品的质量把控是否也需要产品经理染指?工作进度也需要产品经理负责?可是,项目经理和QA会成了吃闲饭的岗位!

Manage不是Design

产品设计不应该是产品经理的任务;那么是不是每个产品经理都应该去画线框图?PD文档真的是产品经理应有的交付物么?要不干脆就叫产品设计师吧;一个汽车设计师只要在纸上画出来原图,而那些其他细枝末节都交给CAD制图员去处理了,那么为什么网络产品经理还要自己画线框图呢?那么为什么产品经理往往要百般的讨好技术经理才能让产品付诸实施……

越分析越模糊,相信很多身为产品经理的人也在模糊;如果Manage代表了“处理,支配;管理,经营”的含义,那么产品经理就相当于CEO的角色了。

PM是个抢饭的角色

按照很多产品经理自己的观点,要胜任这个定义模糊的职位必须成为一个超人那样的SuperMan,例如我们随便搜索“合格的产品经理”这个关键词,得到如下的信息:

这位产品经理抢了项目经理的饭碗
成为一个合格的产品经理,必须要重视三个方面的能力:. 1,文档的规范能力; 2,项目管理能力; 3,跨部门沟通协作能力
这位产品经理抢了UED的饭碗
合格的产品经理应当具有撰写报告的能力,如:分析报告、用户调查、可行性报告等等
这位产品经理抢了需求工程师的饭碗
一个合格的互联网产品经理在向技术部提交产品策划方案时,除了详尽的需求说明外,还必须提供清晰易懂的产品原型设计(Prototype Design)方案
这位产品经理抢了销售总监的饭碗
一个产品经理如果只看到现在,只看到产品销量的增长,只去考虑如何把他的产品卖出去,那么,只能说这个产品经理还不是一个合格的产品经理。
这位产品经理抢了市场总监的饭碗
合格的产品经理还需要考虑成本预算、销售量的监控、利润监控、价格体系的制定与维护等等东西,这都需要你有基本的财务能力,平时没事炒炒股票弄弄基金 ...
这位产品经理连SEM工程师的饭碗也要抢
一个合格的产品经理应该是半个SEO专家
这位产品经理逐渐意识到成为超人有多难
产品经理不是万能的,应该解放产品经理,现实的情况是产品经理要做很多事情,完全和我之前提到的“超级产品经理”的情况相反。
这位产品经理已经想明白了
在产品管理中,产品经理是领头人,是协调员,是鼓动者,但他并不是老板。

可以看到,产品经理这个职业的现状和遇到的窘境。产品经理不得不模糊的从事者自己的工作,倘若清晰些,发现自己什么都要承受,堪其重负。莫不如干脆承认自己做的是一份清晰的职业,比如UED、交互设计、产品规划、网站设计、网站策划、项目经理、需求工程师、技术支持等等。珍爱青春,远离产品经理

只有老板才是合格的产品经理

回到问题的中心:谁是合格的产品经理?答案很简单,给别人打工的产品经理永远都无法合格;只有那些能够掌握自己命运,真正达到可以“处理,支配;管理,经营”产品的境界,才算是合格的产品经理。

奇怪的逆推定:成为老板之后,他们可能还会去雇佣其他的产品经理去完善自己创立的产品,因此那些被雇佣的产品经理依然永远是“不合格的”,合格代表了产品经理的职业终结

关注不断被“边缘化”的产品经理,关注这个舶来品角色,其是否水土不服,是否在挣扎,是否受到经济颓势影响最深的一群。

posted @ 2009-09-23 15:44 shenjk 阅读(46) 评论(1) 编辑

2009年6月23日 #

摘要: 这是我在网上找的示例,只是转载供朋友参考学习本实例是基agsXMPP上开发的,agsXMPP是C#写的支持开源XMPP协议软件,我们可以在agsXMPP上快速构建自已的即时通讯平台,我的这个例子只是修改了服务器端,因为agsXMPP本身自带的服务器端没有实现聊天功能、签名和登录密码认证。服务器端XmppSeverConnection类事件//在流开始时触发,一般是最初的响应流streamParse...阅读全文
posted @ 2009-06-23 18:20 shenjk 阅读(478) 评论(0) 编辑

摘要: RFC 3920摘要: 此文档定义了可扩展消息出席协议(XMPP)的核心特性:协议使用XML元素在任意两个网络端点间近实时的交换结构化信息。当XMPP为交换XML数据提供一般化,可扩展的框架时,它主要用于建立满足RFC2779的即时消息与出席应用的需求。1 介绍1.1 概要 XMPP是一个开放的可扩展标记语言[XML]协议,用于近实时的消息、出席与请求-响应服务。基本语法语义最初是由Jabber...阅读全文
posted @ 2009-06-23 18:20 shenjk 阅读(39) 评论(0) 编辑