Per*_*eck 9 .net log4net uniqueidentifier
我正在尝试添加一个自定义属性,这是一个guid,但它给了我这个错误:
System.InvalidCastException:无法将参数值从String转换为Guid.---> System.InvalidCastException:从'System.String'到'System.Guid'的无效转换.
我在配置中指定了这个:
<parameter>
<parameterName value="@id" />
<dbType value="Guid" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%X{id}" />
</layout>
</parameter>
Run Code Online (Sandbox Code Playgroud)
我使用的实际代码(片段)是这样的:
Guid guid = Guid.NewGuid();
if (defaultLogger.IsEnabledFor(level))
{
var loggingEvent = new LoggingEvent(ThisDeclaringType,
defaultLogger.Repository, defaultLogger.Name, level, message, exception);
loggingEvent.Properties["Id"] = guid;
Run Code Online (Sandbox Code Playgroud)
有什么帮助吗?:)数据库中的id字段被定义为唯一标识符NOT NULL,但它没有主键约束.
Cla*_*sen 24
对于您的示例,以下应该有效:
<parameter>
<parameterName value="@Oid" />
<dbType value="Guid" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="Id" />
</layout>
</parameter>
Run Code Online (Sandbox Code Playgroud)
重要的是你将@id重命名为其他东西,否则你将在数据库中获得Null值,即使你试图插入字符串,
然后使用RawPropertyLayout存储,cus你不需要做转换.
| 归档时间: |
|
| 查看次数: |
6853 次 |
| 最近记录: |