对象PropertyInfo中 找到对象的指定特性

在对象化存储过程中,遇到组件要求指定对象主键为 guid 类型,但数据库主键为 Int 自增。为避免修改数据库和增加逻辑复杂度,通过反编译组件并添加新功能来适应需求。在处理过程中,使用PropertyInfo找到对象带有ID特性(IDAttribute)的属性,以实现特定操作。以下是关键代码示例。
摘要由CSDN通过智能技术生成

在坐一个对象化存储时,又遇到一个够郁闷的问题。所使用的一个组件,在往数据库存对象时,必须要指定对象的主键。而且这个主键是guid ,nvarchar(50)类型。

一般新增数据会先newid一个guid.可是,遇到了一个数据库,数据库主键采用的类型是Int 自增型。而且设置了IDENTITY标示。

原本我想改动一下数据库表类型,去掉字段的IDENTITY。

SET IDENTITY_INSERT products2 ON 让可以显示的插入id.可不符合业务,也会增加逻辑复杂度;

可我那组件在往数据库插入新的记录时,一定会显示的带上那个identity的字段。于是老是报错,又不提供这样的方法。。根本没法往下进行的节奏;

我又不是这个组件的提供者,有没代码。幸好老子聪明,奶奶的,一不做二不休,反编译了这个组件,幸好这个组件没有加壳,轻松反编译出来了源码。于是顺利的改了源码,加上了我需要的function.

中间遇到一个问题,取对象某个指定属性,哦,请原谅我,我现在有点懒。直接上代码吧


 public void StoreIdentityTable(T obj)
        {
            using (SqlConnection connection = SqlHelper.GetSqlConnection(this.GetConnectionString()))
            {
                SqlTransaction trans = connection.BeginTransaction();
                try
                {
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值